JavaScript图片slidelow不显示

时间:2017-04-29 06:06:49

标签: javascript html slideshow

这里有什么问题,一切顺利,直到2天前!

JavaScript代码:

var slideIndex = 0;
carousel();

function carousel() {
    "use strict";
    var i;
    var x = document.getElementsByClassName("istaknutiOglasi");
    for (i = 0; i < x.length; i++) {
        x[i].style.display = "none";
    }
    slideIndex++;
    if (slideIndex > x.length) {
        slideIndex = 1;
    }
    x[slideIndex - 1].style.display = "block";
    setTimeout(carousel, 10000);
}

HTML code:

<div class="single_sidebar wow fadeInDown">
<h2><span>Istaknuti Oglasi</span></h2>
<div class="sideAdd">
<img class="istaknutiOglasi" src="/images/Istaknuti_Oglasi.png">
<img class="istaknutiOglasi" src="/images/Banner_2.png">
</div>
</div>

在谷歌上显示错误x[slideIndex - 1].style.display = "block";

1 个答案:

答案 0 :(得分:0)

两件事:

if (slideIndex > x.length) {
        slideIndex = 1;
    }

应改为:

if (slideIndex >= x.length) {
        slideIndex = 0;
    }

x[slideIndex - 1].style.display = "block";

应更改为:

x[slideIndex].style.display = "block";

这是一个有效的例子

&#13;
&#13;
var slideIndex = 0;
carousel();

function carousel() {
    "use strict";
    var i;
    var x = document.getElementsByClassName("istaknutiOglasi");
    for (i = 0; i < x.length; i++) {
        x[i].style.display = "none";
    }
    slideIndex++;
    if (slideIndex >= x.length) {
        slideIndex = 0;
    }
    x[slideIndex].style.display = "block";
    setTimeout(carousel, 1000);
}
&#13;
<div class="single_sidebar wow fadeInDown">
<h2><span>Istaknuti Oglasi</span></h2>
<div class="sideAdd">
<img class="istaknutiOglasi" src="https://unsplash.it/200/300">
<img class="istaknutiOglasi" src="https://unsplash.it/200/400">
</div>
</div>
&#13;
&#13;
&#13;

发生的事情是索引试图访问数组(x)之外的元素。这是一个出界的错误。这对你有什么帮助!