ウェブサイトやアプリを作る時に、「写真や文章を横に並べて、スライドさせながら表示したい」と思ったことはありませんか?そんな時に便利なのが「スライダー」や「カルーセル」と呼ばれる機能です。

今回は、このスライダー機能を簡単に実装できる4つのライブラリを紹介します。それぞれの特徴や機能を比較しながら、あなたのアプリにぴったりなスライダーライブラリを選択してください。

紹介するライブラリ

今回紹介するのは以下の4つのライブラリです。

これらはすべて無料で使えるライブラリです(MITライセンス)。ただし、Splideには一部の機能が有料(スポンサー限定)の「Splide Premium」というバージョンもあります。

では、それぞれのライブラリについて詳しく見ていきましょう。

1. Swiper


Swiperは、特にスマートフォンアプリでの使用を想定して作られたライブラリです。ただし、パソコンでも問題なく使えます。

  • スマートフォンでの使用に最適化されている
  • 多くの機能がある
  • 有名なアプリ開発フレームワーク(Framework7やIonic Framework)でも採用されている

2. Glide.js


Glide.jsは、最新のJavaScript(ES6)で開発されています。他のライブラリに依存せず、単独で動作するのが特徴です。

  • 他のライブラリを必要としない
  • 必要な機能だけを選んで使える(モジュール式)
  • プログラマーがカスタマイズしやすい

3. Tiny Slider 2

Tiny Slider 2は、以前人気だった「Owl Carousel」というライブラリを参考に作られました。Owl Carouselは古い技術(jQuery)を使っていましたが、Tiny Slider 2は最新のJavaScript(Vanilla JavaScript)で作られています。

  • シンプルで使いやすい
  • 軽量(ファイルサイズが小さい)
  • 基本的な機能に絞っている

4. Splide

Splideは、最新のTypeScriptという言語で開発された新しいライブラリです。他のライブラリに依存せず、単独で動作します。

  • 最新の技術で開発されている
  • 拡張機能にも対応している
  • 日本語の説明文書がある(公式サイトで提供)

基本機能の比較

それぞれのライブラリの基本機能を比較します。

機能 Swiper Glide.js Tiny Slider 2 Splide
外部ライブラリ 不要 不要 不要 不要
モジュール構造
API提供
React/Vue対応
拡張機能
自動再生
縦方向スライド
入れ子構造
複数表示
サムネイル表示
ズーム
動画対応
スライドの追加・削除

ここで挙げた機能は、標準でサポートされているかどうかであり、実装ができない訳ではありませんのでご注意ください。

印象としてですが、SwiperとSplideは機能が多い印象です。Glide.jsは機能はリッチではありませんが、APIが充実しているので、コードを書けば十分実現できそうです。Tiny Slider 2はあまり機能は多くありませんが、シンプルなのでカスタマイズは難しくなさそうです。

それぞれの特有の機能について

各ライブラリには、他にはない特別な機能があります。ここでは、それらの特徴的な機能を紹介します。

Swiper

Swiperは機能が多彩で、たとえば以下のような機能が用意されています。また、モバイルアプリでの利用を想定されている点もメリットが大きいです。

  • フリーモード
    スライドがグリッドで止まらず、フリーに動かせるモードです。
  • パララックス
    背景と前景が異なる速度で動く視覚効果を作れます。
  • カードエフェクト
    スライドがカードのように重なるエフェクトです。

Glide.js

Glide.jsの特徴は、各機能がモジュール化されていることです。これにより、必要な機能だけを選んで使うことができ、プログラムから細かく制御できます。

import Glide, { Autoplay } from "@glidejs/glide/dist/glide.modular.esm"
// Autoplayを追加
new Glide(".glide").mount({ Autoplay })

Tiny Slider 2

jQueryプラグインのOwl Carouselに影響されていることもあり、利用はシンプルです。初期化時のオプションでさまざまに指定を行います。

const slider = tns({
    container: ".my-slider",
    items: 3,
    slideBy: "page",
    autoplay: true
});

// スライドを移動
slider.goTo(3);

Splide

アクセシビリティに配慮されています。テーマやローカライズもサポートされており、高機能です。React/Vue/Svelte向けのインテグレーションも用意されています。

何より公式で日本語ドキュメントが用意されている点もメリットが大きいです。

まとめ

スライダーライブラリは、それぞれに特徴があります。どれを選ぶかは、あなたのプロジェクトの要件によって変わってきます。

  • 機能をたくさん使いたい → Swiper
  • プログラムから細かく制御したい → Glide.js
  • シンプルに使いたい → Tiny Slider 2
  • 最新の技術を使いたい、日本語の説明が欲しい → Splide

基本的なスライド機能はどのライブラリでも実現できるので、機能が多いからといって必ずしも良いわけではありません。自分のプロジェクトに合ったライブラリを選んでください。

これらのライブラリを使えば、初心者の方でも素敵なスライダーを簡単に作ることができます。ぜひチャレンジしてみてください!