[jQuery] bxSlider を使ったスライドショー表示
家のリビングには、役に立つ情報を常に表示するディスプレイを置いている。以前は Raspberry Pi で動かしていたが、現在は Mac だ。
仕組みは簡単で、カレンダーや日付、天気などを表示する html ページを作成し、ブラウザで表示させているだけだ。
そこで、写真のスライドショーを表示させると面白いと気付いたのでやってみることにした。
使ったのは jQuery の bxSlider だ。
(1)公式サイトで bxSlider をダウンロード、解凍する。
jQuery Content Slider | Responsive jQuery Slider | bxSlider
https://bxslider.com/install/
(2)dist ディレクトリにある jquery.bxslider.css と jquery.bxslider.min.js のみが必要なので、それだけを取り出す。
(3)たとえば jquery.bxslider.css と jquery.bxslider.min.js と同じディレクトリに images というディレクトリを作り、images の中に写真を入れる。写真は 1.jpg、2.jpg、3.jpg だとする。
(4)たとえば、slideshow.html というファイルを作成し、以下のように記述する。
1<html>
2<head>
3
4 <link rel="stylesheet" href="jquery.bxslider.css">
5 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
6 <script src="jquery.bxslider.min.js"></script>
7
8 <script>
9 $(document).ready(function(){
10 $('.slider').bxSlider({
11 auto: true,
12 slideWidth: 640,
13 infiniteLoop: true,
14 randomStart: true,
15 pager: false
16 });
17 });
18 </script>
19
20</head>
21<body>
22
23 <ul class="slider">
24 <li><img src="images/1.jpg" /></li>
25 <li><img src="images/2.jpg" /></li>
26 <li><img src="images/3.jpg" /></li>
27 </ul>
28
29</body>
30</html>
私が設定したオプションは以下のようになっている。各行の最後にコンマを打つことと、一番最後の行はコンマが不要になることに注意する。
・auto: true → 自動的に再生を開始する。
・slideWidth: 640 → 横幅。
・infiniteLoop: true → 無限ループ再生。
・randomStart: true → 初期再生スライドをランダムに選ぶ。
・pager: false → ページ表示の丸を非表示にする。
これで slideshow.html をブラウザで表示してみるとスライドショーが開始されるはずだ。
なお、ブラウザウィンドウが非アクティブになるとスライドショーも止まるようだ。
jquery.bxslider.css をいじることで、背景色を透明にしたりもできた。
ただ問題としては、読み込み時に次の写真が右5分の1程、同時に表示されてしまうこと。ブラウザのウィンドウサイズを変更すれば直るけど、毎回ウィンドウサイズをいじるのは面倒だ。バグなのだろうか。