简体   繁体   English

如何在我的自定义 slider JavaScript 代码中插入自动播放选项

[英]How to insert auto-play option in my custom slider JavaScript code

I have created a slider code but the issue is I have to make it autoplay.我创建了一个 slider 代码,但问题是我必须让它自动播放。 This code actually compatible with my custom slider and I just want it to autoplay.此代码实际上与我的自定义 slider 兼容,我只想让它自动播放。 I have tried some code shown below:我尝试了一些如下所示的代码:

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
    showSlides(slideIndex += n);
}

function currentSlide(n) {
    showSlides(slideIndex = n);
}

function showSlides(n) {
    var i;
    var slides = document.getElementsByClassName("contents-2");
    var slides2 = document.getElementsByClassName("contents-1");
    var dots = document.getElementsByClassName("dot");
    if (n > slides.length) {
        slideIndex = 1
    }
    if (n < 1) {
        slideIndex = slides.length
    }
    for (i = 0; i < slides.length; i++) {
        slides[i].className = slides[i].className.replace(" cont-1", "");
    }
    for (i = 0; i < slides2.length; i++) {
        slides2[i].className = slides2[i].className.replace(" cont-2", "");
    }
    for (i = 0; i < dots.length; i++) {
        dots[i].className = dots[i].className.replace(" active-page", "");
    }
    dots[slideIndex - 1].className += " active-page";
    slides[slideIndex - 1].className += " cont-1";
    slides2[slideIndex - 1].className += " cont-2";
    setTimeout(currentSlide, 2000);
}

Please help me with this code, the code above does not autoplay, thank you.请帮我处理这段代码,上面的代码不会自动播放,谢谢。

you could add an interval function to your code您可以在代码中添加间隔 function

setInterval(function(){ plusSlides(1); }, 3000);

The new code I try is below:我尝试的新代码如下:

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("contents-2");
  var slides2 = document.getElementsByClassName("contents-1");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = slides.length}   
  for (i = 0; i < slides.length; i++) {
      slides[i].className = slides[i].className.replace(" cont-1", "");  
  }
  for (i = 0; i < slides2.length; i++) {
slides2[i].className = slides2[i].className.replace(" cont-2", "");
  }
    for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active-page", "");
  }
  dots[slideIndex-1].className += " active-page";
  slides[slideIndex-1].className += " cont-1";  
  slides2[slideIndex-1].className += " cont-2";
  setTimeout(function() {
        showSlides(slideIndex += 1);
    }, 4000);
}

the code above works perfectly but when I use navigation buttons it autoplay at a very high speed上面的代码完美运行,但是当我使用导航按钮时,它会以非常高的速度自动播放

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

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