Autoplay
Play-Pause Toggle Button
- 04
- 05
- 06
- 07
- 08
- 09
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 01
- 02
- 03
- 04
- 05
- 06
If you enable autoplay, you should also provide a play-pause button for accessibility
— which is required to meet WCAG criteria.
To mount a toggle button to your carousel, insert a button with splide__toggle to your carousel:
<sectionclass="splide"><divclass="splide__slider"><divclass="splide__track"><ulclass="splide__list"><liclass="splide__slide">Slide01</li><liclass="splide__slide">Slide02</li><liclass="splide__slide">Slide03</li></ul></div></div><buttonclass="splide__toggle"type="button"><spanclass="splide__toggle__play">Play</span><spanclass="splide__toggle__pause">Pause</span></button></section>HTML
<section 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> <button class="splide__toggle" type="button"> <span class="splide__toggle__play">Play</span> <span class="splide__toggle__pause">Pause</span> </button> </section>
While autoplay is playing, <span class="splide__toggle__play"> will be visible,
and while it's paused, <span class="splide__toggle__pause"> will be.
You can use other inline elements instead of <span>, such as <img> and <svg> like the following:
<buttonclass="splide__toggle"type="button"><svgclass="splide__toggle__play"viewBox="0 0 24 24"xmlns="http://www.w3.org/2000/svg"><pathd="m22 12-20 11v-22l10 5.5z"/></svg><svgclass="splide__toggle__pause"viewBox="0 0 24 24"xmlns="http://www.w3.org/2000/svg"><pathd="m2 1v22h7v-22zm13 0v22h7v-22z"/></svg></button>HTML
<button class="splide__toggle" type="button">
<svg
class="splide__toggle__play"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path d="m22 12-20 11v-22l10 5.5z"/>
</svg>
<svg
class="splide__toggle__pause"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path d="m2 1v22h7v-22zm13 0v22h7v-22z"/>
</svg>
</button>
Progress Bar
To display the progress bar, provide the following HTML:
<divclass="splide"><divclass="splide__track"><ulclass="splide__list"><liclass="splide__slide">Slide01</li><liclass="splide__slide">Slide02</li><liclass="splide__slide">Slide03</li></ul></div><divclass="splide__progress"><divclass="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>
If you are using splide-core.min.css, you have to style the bar to make it visible:
.splide__progress__bar{height:3px;background:#ccc;}CSS
.splide__progress__bar {
height: 3px;
background: #ccc;
}
By default, Splide rewinds the progress once it's interrupted.
You can keep the elapsed time by setting the resetProgress option to false.
Overriding Interval
The interval option uniformly defines the autoplay interval,
but you can override it on specific slides by the data-splide-interval attribute:
<liclass="splide__slide"data-splide-interval="1000"></li><liclass="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>
Progress Rate
The autoplay:playing lets you know the current progress rate.
varsplide=newSplide('.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();
Viewport
You can start autoplay only when the carousel is in the viewport by using Intersection extension.