创建幻灯片

creating a slide show

我正在一个动物救援网站上工作,我正在尝试将一些动物的自动幻灯片放映供领养,但是,对于我来说,我无法使代码正常工作.有什么建议吗?

    <div class="photobanner" style="max-height:460px">
        <img class="myslides" src="image-1.jpg" style="height:100%" />
        <img class="myslides" src="image-2.jpg" style="height:100%" />
        <img class="myslides" src="image-3.jpg" style="height:100%" />
        <img class="myslides" src="image-4.jpg" style="height:100%" />
        <img class="myslides" src="image-5.jpg" style="height:100%" />
        <img class="myslides" src="image-6.jpg" style="height:100%" />
    </div>

    <script type="text/javascript">
var myIndex = 0;
carousel();

function carousel() {
    var i;
    var x = document.getElementsByClassName("mySlides");
    for (i = 0; i < x.length; i++) {
       x[i].style.display = "none";  
    }
    myIndex++;
    if (myIndex > x.length) {myIndex = 1}    
    x[myIndex-1].style.display = "block";  
    setTimeout(carousel, 2000); // Change image every 2 seconds
}
</script>

试试这个 fiddle :https://jsfiddle.net/zaedmfLs/

var myIndex = 0;
setInterval(carousel, 2000);

function carousel() {
    var i;
    var x = document.getElementsByClassName("myslides");
    for (i = 0; i < x.length; i++) {
        console.log("Carousel");
       x[i].style.display = "none";  
    }
    myIndex++;

    if (myIndex > x.length) {myIndex = 1} 
    x[myIndex-1].style.display = "block";  
}

对您的代码进行少量更改:

  1. 使用 setInterval 代替 setTimeout
  2. setInterval 调用在 carousel 方法之外进行,因为 carousel 需要重复调​​用。
  3. myslides 名称有错字(大写 'S')

你有两个主要问题:

  1. mySlidesmyslides不是一回事
  2. 而不是 setTimeout 我会使用 setInterval 每 2 秒调用一个函数

这里有一个建议

var myIndex = 0;
var images = document.getElementsByClassName("myslides");
setInterval(carousel, 2000); // Change image every 2 seconds

function carousel() {
    images[myIndex].style.display = "none";  

    myIndex++;
    if (myIndex >= images.length) {
      myIndex = 0;
    }
    console.log(myIndex, images.length);
    images[myIndex].style.display = "block";  
}
img.myslides {
  display: None;
}
    <div class="photobanner" style="max-height:460px">
        <img class="myslides" src="image-1.jpg" style="height:100%" />
        <img class="myslides" src="image-2.jpg" style="height:100%" />
        <img class="myslides" src="image-3.jpg" style="height:100%" />
        <img class="myslides" src="image-4.jpg" style="height:100%" />
        <img class="myslides" src="image-5.jpg" style="height:100%" />
        <img class="myslides" src="image-6.jpg" style="height:100%" />
    </div>