我在我的Tumblr页面上使用了w3学校的自动滑块代码。现在,我在这里上下看了看,看到有几个人用同样的代码遇到了类似的问题,但不幸的是,我没有找到任何解决方案。加载后,它将在3张幻灯片之间循环,然后消失,只留下一些点。你可以在http://rachelmontano.com上看到
我非常肯定问题出在javascript上,而不是CSS或HTML --我已经仔细检查了我所有的类是否匹配,并且我没有任何随机/不必要的HTML漂浮或任何东西。在结束循环并消失之前,inspect中没有错误。一旦发生这种情况,这是我得到的错误,但我不知道如何破译这个lol >>I是一个JS新手,我是如此的sorry<<
Uncaught TypeError: Cannot read property 'style' of undefined
at showSlides ((index):985)
showSlides @ (index):985
setTimeout (async)
showSlides @ (index):987
setTimeout (async)
showSlides @ (index):987
setTimeout (async)
showSlides @ (index):987
(anonymous) @ (index):971下面是JS代码片段
<script>
var slideIndex = 0;
showSlides();
function showSlides() {
var i;
var slides = document.getElementsByClassName("slips");
var dots = document.getElementsByClassName("bottomdots");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {slideIndex = 1}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" activedot", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " activedot";
setTimeout(showSlides, 3000); // Change image every 2 seconds
}
</script>
编辑:这是我的网站代码的截图,这样你就可以看到{slideIndex=1}在我的网站代码中,但是当你在inspect中检查它时,似乎有什么东西设法删除了它!?!?我甚至不..。
发布于 2020-11-05 11:29:07

您错过了这里第12行的slideIndex = 1。在问题中你已经写好了,但在检查你的网站时,我注意到只有if语句没有正文。将其更改为if (slideIndex > slides.length) {slideIndex = 1}。希望这能行得通!
发布于 2020-11-06 02:17:20
在我发表评论后,我去了你的网站,复制了我需要的代码,并制作了这个JSFIDDLE
正如roittimi指出的那样,关键是if语句之后没有条件。唯一需要更改的是:
if (slideIndex > slides.length) {
slideIndex = 1
}我还更改了几个图像的占位符,以便您可以看到它们的过渡。
发布于 2020-11-06 04:00:13
我认为代码的其他部分有一些干扰。主题不是我自己的,Inspect显示了一些与这个滑块无关的主题代码部分的错误。然而,从那以后,我开始编写我自己的新主题,把同样的代码放在里面,所有的问题都解决了。我仍然不能告诉你为什么这些问题会导致一个完全不相关的JavaScript片段中的if语句体完全消失。
https://stackoverflow.com/questions/64690396
复制相似问题