Vue.jsの画像やコンテンツのスマホ対応に適したカルーセルスライダー「vue-flickity-2」

Vue.jsの画像やコンテンツのスマホ対応に適したカルーセルスライダー「vue-flickity-2」

vue-flickity-2とは

vue-flickity-2は、FlickityをVue.jsに対応させたカルーセルスライダーライブラリです。

スマホやタブレットと相性が良く、レスポンシブにも対応しています。

 

Vue.jsの画像やコンテンツのスマホ対応に適したカルーセルスライダー「vue-flickity-2」

 

環境

Vue 2.6.10
vue-flickity-2 0.1.10

 

インストール

以下のnpmCDNを使ってインストールします。

npm

npm install vue-flickity-2

CDN

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-flickity-2.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-flickity-2.umd.min.js"></script>

 

gitリポジトリは以下から取得できます。

https://github.com/CristianoSoleti/-vue-flickity

 

導入手順

1. ライブラリの取り込み

(1)webpack等の場合 [注意]モジュール版は未検証です。

import Flickity from 'vue-flickity-2';
import 'vue-flickity-2/dist/vue-flickity-2.css';

(2)WEBページの場合

const Flickity = window['vue-flickity-2'];

2.メソッドを設定

上記で取得したFlickitycomponents プロパティに取り込みます。

dataにカルーセルのオプション設定flickityOptionsとして持たせます。

ドラッグでスクロールした時に動作するdragMove イベントを設定しておきます。

new Vue({
  el: '#app',
  components: {
    'flickity':Flickity
  },
  data: {
    flickityOptions: {
      "autoPlay": 5000,
      "pageDots": true,
      "resize": true,
      "prevNextButtons": true,
      "wrapAround": true,
    },
    api: {},
  },
  methods: {
    dragMove(event, pointer, moveVector) {
      console.log(event, pointer, moveVector);
    },
  }
});

3. テンプレートを準備

<flickity> を設置し、中にタグを設置する(divとかp)
今回はサンプルでdivを設置してます。

options プロパティにカルーセルのオプションをオブジェクト形式で設定する。
ちなみにオプションの種類は、本家のドキュメントを見てもらうと、イメージ付きなのでわかり易いと思う。

Flickity · Options
https://flickity.metafizzy.co/options.html

 

<div id="app">
  <div key="flickity">
    <flickity
      :options="flickityOptions"
      ref="flickity"
      @dragMove="dragMove"
      @init="api=$event.flickityApi"
    >
      <div class="carousel-cell">1</div>
      <div class="carousel-cell">2</div>
      <div class="carousel-cell">3</div>
      <div class="carousel-cell">4</div>
      <div class="carousel-cell">5</div>	
    </flickity>
  </div>
</div>

4.スタイルを適用

.carousel-cell {
  width:250px;
  height: 150px;
  background-color: #62caaa;
  padding: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  border: 2px solid #fff;
  font-size: 30px;
  border-radius: 10px;
}

 

サンプル

>>専用ページで確認する

 

さいごに

FlickityをVue.jsに対応させたカルーセルスライダーライブラリでした。

今回のライブラリと似た名前の「vue-flickity」というものがあります。
こちらは今回の「vue-flickity-2」とほとんど同じものですが、CDN対応をしていないので注意です。

 

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-Carousel, UI Components, vue.js, ライブラリ
-, , ,