简体   繁体   English

如何修复卡在第一张幻灯片上的这个简单的 javascript 幻灯片?

[英]How do I fix this simple javascript slideshow stuck on the first slide?

I'm having trouble making this simple slideshow work.我在制作这个简单的幻灯片时遇到了麻烦。 I think it has something to do with the javascript, but I'm not that far on my training to understand it yet.我认为这与 javascript 有关系,但我的训练还没有那么远,无法理解它。 Here is the code I placed inside the HTML's body:这是我放在 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>

I can't figure out the problem since I don't even know how to code in js yet.我无法弄清楚问题,因为我什至不知道如何在 js 中编码。 I simply copied the code from a tutorial online, but, unlike there, my slides are stuck on the first one.我只是从在线教程中复制了代码,但与那里不同的是,我的幻灯片卡在第一个上。

I think it might be your setInterval instead of calling it like this :我认为它可能是你的 setInterval 而不是这样调用它:

setInterval(functionname,2000);

try it like this :像这样尝试:

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

this gives you something like this :这给了你这样的东西:

jsfiddle提琴手

also be sure to wrap all your code in a domcontent event listener :还要确保将所有代码包装在 domcontent 事件侦听器中:

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

This makes sure your html elements are available when you use them in javascript这可确保您在 javascript 中使用 html 元素时可用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM