Click slides!
<ul class="list"> <li data-index="0"> <img src="https://placehold.jp/ccffff/000000/960x540.png?text=Slide1"> </li> <li data-index="1"> <img src="https://placehold.jp/ffccff/000000/960x540.png?text=Slide2"> </li> <li data-index="2"> <img src="https://placehold.jp/ccffcc/000000/960x540.png?text=Slide3"> </li> </ul> <div class="splide-outer"></div>
html, body { margin: 0; padding: 0; } .splide-outer { max-width: 960px; margin: auto; } .splide__slide img { width: 100%; }
document.addEventListener('DOMContentLoaded', () => { const html = ` <div class="splide"> <div class="splide__track"> <ul class="splide__list"> <li class="splide__slide"> <img src="https://placehold.jp/ccffff/000000/960x540.png?text=Slide1"> </li> <li class="splide__slide"> <img src="https://placehold.jp/ffccff/000000/960x540.png?text=Slide2"> </li> <li class="splide__slide"> <img src="https://placehold.jp/ccffcc/000000/960x540.png?text=Slide3"> </li> </ul> </div> </div> ` const listLi = document.querySelectorAll('.list > li') Array.from(listLi).forEach(el => { el.addEventListener('click', () => { document.querySelector('.splide-outer').innerHTML = html new Splide('.splide', { type: 'loop', start: el.dataset.index, }).mount() }) }) })