我创建了一个有3张幻灯片的幻灯片,但由于某种原因,它不断添加额外的幻灯片
<div id="slideshow">
<div class="slide">Slide 1</div>
<div class="slide">Slide 2</div>
<div class="slide">Slide 3</div>
<div id="slideshow-controls">
<button id="prev-button">Prev</button>
<span id="slideshow-counter"></span>
<button id="next-button">Next</button>
</div>
</div>
这是链接到我的完整代码:https://codepen.io/Axolotles/pen/vYaNXXO
有没有人能告诉我的错误是什么,以及我如何才能在输出中获得3张幻灯片而不是4张。提前感谢
5条答案
按热度按时间jhdbpxl91#
您正在使用语句
const slides = slideshow.children;
定义幻灯片。幻灯片显示共有4个直接子项,因此计数器在技术上是正确的(请参见幻灯片1、幻灯片2、幻灯片3和slideshow-controls)。获得您想要的幻灯片的一种方法是使用
const slides = document.getElementsByClassName("slide")
。我希望这能有所帮助!eqzww0vc2#
你的幻灯片div查尔兹抛出4,因为你的第四个div是幻灯片控件。你可能想在计数器上加-1或者重新定义你的div。祝你好运!
qvtsj1bj3#
问题是你的slides变量没有被分配到正确的元素列表中,正如前面的答案所说,你应该用
document.getElementsByClassName('slide')
或document.querySelectorAll('.slide')
替换slideshow.children
,使用两者中的任何一个。通过使用
slideshow.children
,您不会得到.slide
类,而是得到#slideshow
的所有子类。因此,第67行中的变量应如下所示:
或
xzv2uavs4#
如果有人需要查看代码:这是他发送的
codepen
中的JS代码,下次将代码添加到此处bpzcxfmw5#
你应该保持幻灯片控件出你的幻灯片div。我附上下面的代码。运行它,并检查。