繁体   English   中英

Onload 定时器复位或重启

[英]Onload timer reset or restart

有什么办法可以重置这个onload的时间吗?

function auto(){
  setInterval(slide, 5000);
}
window.onload = auto;

就我而言,当我通过复选框手动更改幻灯片时,计时器不会重置并且基本上会快速通过所选幻灯片,因为计数器没有与 slide() 函数一起重置。

我用它来收听幻灯片索引(复选框),并重新加载幻灯片脚本。

function check(input) {
    //set checked of clicked object
  slideContador = input.name;
  slide();
}

function slide() {
  if(slideContador >= slideTamanho) {
    slideContador = 0;
  }
  document.getElementById('slide-link').href = slideLink[slideContador];  
  document.getElementById('slide-img').src = slideImg[slideContador];
  document.getElementById('slideshow-bg').style.backgroundImage = "url('" + slideFundo[slideContador] + "')";
//Desmarca checkboxes
var checkboxes = document.getElementsByClassName("rounded-checkbox");
        for(var i = 0; i < checkboxes.length; i++){
            //uncheck all
            if(checkboxes[i].checked == true)
            {
                checkboxes[i].checked = false;
            }
        }
var element = document.getElementsByName(slideContador)[0];
element.checked = true;
//Almenta o contador
slideContador++;
}

使用 clearInterval 删除计时器。

let timer = null
function auto(shouldSlide){
  if (timer) window.clearInterval(timer);
  timer = window.setInterval(slide, 5000);
  if (shouldSlide) slide();
}
window.addEventListener('load', function() { auto(); });

function check(input) {
  slideContador = input.name;
  auto(true);
}

暂无
暂无

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

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