Как мне исправить это простое javascript слайд-шоу, застрявшее на первом слайде? - PullRequest
0 голосов
/ 25 марта 2020

У меня проблемы с работой этого простого слайд-шоу. Я думаю, что это как-то связано с javascript, но я еще не так много тренировался, чтобы понять это. Вот код, который я поместил внутри тела HTML:

<script>
    var slides = document.querySelectorAll('#slides .slide');
    var currentSlide = 0;
    var slideInterval = setInterval(nextSlide,2000);

    function nextSlide(){
        slides[currentSlide].className = 'slide';
        currentSlide = (currentSlide+1)%slides.length;
        slides[currentSlide].className = 'slide showing';
}</script>

<div id="deps">
    <ul id="slides">
        <li class="slide showing">Slide 1</li>
        <li class="slide">Slide 2</li>
        <li class="slide">Slide 3</li>
        <li class="slide">Slide 4</li>
        <li class="slide">Slide 5</li>
    </ul>
</div>

Я не могу понять проблему, так как даже не знаю, как кодировать в js. Я просто скопировал код из учебника онлайн, но, в отличие от этого, мои слайды застряли на первом.

1 Ответ

0 голосов
/ 25 марта 2020

Я думаю, что это может быть ваш setInterval вместо того, чтобы называть его так:

setInterval(functionname,2000);

попробуйте так:

setInterval(()=>{functionname()},2000);

это даст вам что-то вроде этого:

jsfiddle

также обязательно оберните весь свой код в прослушивателе domcontent событий:

document.addEventListener('DOMContentLoaded',()=>{ /*your javascript code*/ });  

Это гарантирует, что ваши элементы html доступны, когда вы используете их в javascript

...