首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我在html中单击javascript中的一个按钮时,如何停止计时器加速?

当我在html中单击javascript中的一个按钮时,如何停止计时器加速?
EN

Stack Overflow用户
提问于 2018-06-22 03:23:44
回答 1查看 41关注 0票数 0

我正在尝试制作一个图像幻灯片,它每10秒改变一次,但在底部有一个按钮,如果你点击这个点,它会把你带回那个图像。问题是当我点击按钮的时候,它加快了计时器的速度。如何停止此操作,以便当我单击该按钮时,它会重置计时器?

代码语言:javascript
复制
function showSlides() {
    var nextSlide = false
    var i;
    var slides = document.getElementsByClassName("mySlides");
    var dots = document.getElementsByClassName("dot");
    for (i = 0; i < slides.length; i++) {
       slides[i].style.display = "none";  
    }
    if (slideIndex > slides.length) {slideIndex = 1}    
        for (i = 0; i < dots.length; i++) {
        dots[i].className = dots[i].className.replace(" active", "");
    }
    slides[slideIndex-1].style.display = "block";  
    dots[slideIndex-1].className += " active";
    setTimeout(showSlides, 10000, slideIndex++); // Change image every 10 seconds
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 04:43:24

感谢Teemu的评论。谁教我怎么做的,我把它应用到代码中,它就能工作了

代码语言:javascript
复制
function timer() {
	this.STimer = setTimeout(showSlides, 10000, slideIndex++);
}

function cancelTimer(){
	clearTimeout(this.STimer);
}

function currentDiv(n) {
	cancelTimer();
	showSlides(slideIndex = n);
}

function showSlides() {
	var nextSlide = false
    var i;
    var slides = document.getElementsByClassName("mySlides");
    var dots = document.getElementsByClassName("dot");
    for (i = 0; i < slides.length; i++) {
       slides[i].style.display = "none";  
    }
    if (slideIndex > slides.length) {slideIndex = 1}    
    for (i = 0; i < dots.length; i++) {
        dots[i].className = dots[i].className.replace(" active", "");
    }
    slides[slideIndex-1].style.display = "block";  
    dots[slideIndex-1].className += " active";
	timer();
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50976159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档