6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

owl carousel2 ことはじめ

Posted at

'owl carousel2' とは

カルーセルデザイン(スライドデザイン)を表現するライブラリのひとつです

特徴としては

  1. レスポンシブ対応
  2. ドラッグでのスライド移動ができる
  3. スワイプでのスライド移動ができる

といった、スマートデバイス向けの挙動をサポートしています

同様のライブラリに slick など、いくつかのライブラリが存在します

Download and Install

前提

  • 必ずHTMLにjQueryをロードするようにしてください
  • また、以下に記すタグ埋め込みは必ずjQueryのものの下に記載するようにしてください
  • この記事を記述するに際して、使用しているライブラリやアプリのバージョンは以下の通りです
    • jQuery
      • 3.4.1
    • owl carousel2 本体
      • 2.3.4
    • chrome
      • 77.0 (77.0.3865.90 official build) (x64)
    • IE
      • 11 (11.356.18362.0)

公式サイトから

こちらDownload からzipをダウンロードできます

zipを展開し、cssは dist/assets 内の

  • owl.carousel.min.css
  • owl.theme.default.css

を任意のスタイルシートディレクトリにコピーし、javascriptは dist 内の

  • owl.carousel.min.js

を任意のスクリプトディレクトリにコピーしてください

CDNから

CDN がこちらからあるのでこれの

  • owl.carousel.min.css
  • owl.theme.default.css
  • owl.carousel.min.js

をそれぞれ <link> タグ、 <script> タグに追加してください

npm / yarn

あまり詳しく解説しません

使用法 / 例

part1

一番シンプルなデザインについて記載します

HTML

<body>
  <div class="your_awesome_carousel owl-carousel owl-theme">
    <div>
      <img src="your_awesome_image1.png">
    </div>
    <div>
      <img src="your_awesome_image2.png">
    </div>
    <div>
      <img src="your_awesome_image3.png">
    </div>
    <div>
      <img src="your_awesome_image4.png">
    </div>
    <div>
      <img src="your_awesome_image5.png">
    </div>
    <div>
      <img src="your_awesome_image6.png">
    </div>
  </div>
</body>

ハマりポイント

  1. <div class="owl-carousel owl-theme"> の部分について
    • この部分はカルーセルデザイン適用対象のrootになります
    • 必ず owl-carousel owl-theme の2つを設定する必要があります

備考

  1. カルーセルデザインを適用させたい箇所のタグを全て <div> にしていますが、実際は <ul><li></li>...</ul> のようなリストタグでも良いようです

CSS (SCSS)

特に設定しなくても動いてくれます

javascript (jQuery)

$(document).ready(function () {
  $('.your_awesome_carousel').owlCarousel();
});

EXAMPLE

part2

アイテムを中央にし、スクロールボタンが表示されているデザインを説明します

HTML

<body>
  <div>
    <ul class="owl-carousel owl-theme">
      <li>
        <img src="your_awesome_image1.png">
      </li>
      <li>
        <img src="your_awesome_image2.png">
      </li>
      <li>
        <img src="your_awesome_image3.png">
      </li>
      <li>
        <img src="your_awesome_image4.png">
      </li>
      <li>
        <img src="your_awesome_image5.png">
      </li>
      <li>
        <img src="your_awesome_image6.png">
      </li>
    </ul>
    <div class="owl-prev"></div>
    <div class="owl-next"></div>
  </div>
</body>

一番の変化は最後から3~4行目にある owl-prev owl-next のクラスを持つ <div> タグになります

これらがprev/nextのボタンに変化してくれます

CSS (SCSS)

.owl-item {
  opacity: 0.3;
  transition: 1s ease-out;
}
.owl-item.center {
  opacity: 1;
}

.owl-next {
  margin: 0 100px !important;
}
.owl-prev {
  margin: 0 100px !important;
}
.owl-item {
  opacity: 0.3;
  transition: 1s ease-out;

  &.center {
    opacity: 1;
  }
}

.owl {
  &-next {
    margin: 0 100px !important;
  }
  &-prev {
    margin: 0 100px !important;
  }
}

.owl-item & .owl-item.center

中央に来ているスライド以外を透過しています

owl-item 及び center はowl carousel2が実行時に自動的にセットしてくれるクラスになります

owl-next/owl-prev

無理矢理 左右のマージンをあけています

!important をつけないと margin 属性が効いてくれませんでした

しかし、もしかしたらほかの方法で設定することができるかもしれません

javascript (jQuery)

$(document).ready(function () {
  $('.owl-carousel').owlCarousel({
    center: true,
    items: 3,
    loop: true,
    margin: 10,
    nav: true,
    responsive: {
      600: {
        items: 1
      }
    }
  });
});

EXAMPLE

最後に

どのライブラリでも言えることですが、触る為のルールを会得すれば、簡単にカルーセルデザインを実装することができる良いライブラリであると感じます

しかし、slickと比較した際に、slickにはある beforeChange のイベントコールバックの設定に丁度当たるものが無い為、スライドした瞬間に center に来ている要素に対してスタイルを当てる、といったことは苦手な印象を受けました

さらっと触っただけですので、こちらももしかしたら別の方法によって達成可能かもしれません

よろしければご指摘くださいませ

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?