Autoplay
自動再生
v3用のドキュメントを参照しています
Autoplay
プログレスバーの表示
- 04
- 05
- 06
- 07
- 08
- 09
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 01
- 02
- 03
- 04
- 05
- 06
プログレスバーを表示するには、次のようなHTMLを追記してください。プログレスバーはルート要素か、あるいはスライダー要素の直下に配置する必要があります。
<
div
class
=
"splide"
>
<
div
class
=
"splide__track"
>
<
ul
class
=
"splide__list"
>
<
li
class
=
"splide__slide"
>
Slide
01
<
/
li
>
<
li
class
=
"splide__slide"
>
Slide
02
<
/
li
>
<
li
class
=
"splide__slide"
>
Slide
03
<
/
li
>
<
/
ul
>
<
/
div
>
<
div
class
=
"splide__progress"
>
<
div
class
=
"splide__progress__bar"
>
<
/
div
>
<
/
div
>
<
/
div
>
HTML
<div class="splide"> <div class="splide__track"> <ul class="splide__list"> <li class="splide__slide">Slide 01</li> <li class="splide__slide">Slide 02</li> <li class="splide__slide">Slide 03</li> </ul> </div> <div class="splide__progress"> <div class="splide__progress__bar"> </div> </div> </div>
splide-core.min.css
を使用している場合は、スタイルを追記する必要があります(そうしないと高さが0のため見えません)。
.splide__progress__bar
{
height
:
3
px
;
background
:
#ccc
;
}
CSS
.splide__progress__bar { height: 3px; background: #ccc; }
プログレスは自動再生が中断するたびに0にリセットされます。resetProgress
オプションをfalse
にすることで、経過時間を維持できます。
自動再生間隔の上書き
自動再生の間隔はinterval
オプションによって決定されますが、data-splide-interval
を利用すると、特定のスライドに対してのみこの間隔を上書きできます。
<
li
class
=
"splide__slide"
data-splide-interval
=
"1000"
>
<
/
li
>
<
li
class
=
"splide__slide"
data-splide-interval
=
"10000"
>
<
/
li
>
HTML
<li class="splide__slide" data-splide-interval="1000"></li> <li class="splide__slide" data-splide-interval="10000"></li>
進捗率
autoplay:playing
を使用すると、自動再生の経過時間を割合として取得できます。
var
splide
=
new
Splide
(
'.splide'
)
;
splide
.
on
(
'autoplay:playing'
,
function
(
rate
)
{
console
.
log
(
rate
)
;
// 0-1
}
)
;
splide
.
mount
(
)
;
JavaScript
var splide = new Splide( '.splide' ); splide.on( 'autoplay:playing', function ( rate ) { console.log( rate ); // 0-1 } ); splide.mount();
再生・停止ボタン
再生・停止ボタンを追加するには、次のようなHTMLを追記してください。
<
div
class
=
"splide"
>
<
div
class
=
"splide__slider"
>
<
div
class
=
"splide__track"
>
<
ul
class
=
"splide__list"
>
<
li
class
=
"splide__slide"
>
Slide
01
<
/
li
>
<
li
class
=
"splide__slide"
>
Slide
02
<
/
li
>
<
li
class
=
"splide__slide"
>
Slide
03
<
/
li
>
<
/
ul
>
<
/
div
>
<
/
div
>
<
div
class
=
"splide__autoplay"
>
<
button
class
=
"splide__play"
>
Play
<
/
button
>
<
button
class
=
"splide__pause"
>
Pause
<
/
button
>
<
/
div
>
<
/
div
>
HTML
<div class="splide"> <div class="splide__slider"> <div class="splide__track"> <ul class="splide__list"> <li class="splide__slide">Slide 01</li> <li class="splide__slide">Slide 02</li> <li class="splide__slide">Slide 03</li> </ul> </div> </div> <div class="splide__autoplay"> <button class="splide__play">Play</button> <button class="splide__pause">Pause</button> </div> </div>
矢印などと同様、自動再生のUIも、ルートか、あるいはスライダー要素内に配置する必要があります。
再生・停止ボタンを提供する場合、同時にpauseOnHover
オプションをfalse
に設定することをおすすめします。
そうしないと、ユーザが停止ボタンをクリックする前に自動再生が停止してしまいます。
画面内にあるときのみ再生
Intersectionエクステンションを利用すると、スライダーが画面内に存在するときのみ自動再生を有効にできます。