暂停javascript图像滑块

暂停javascript图像滑块,javascript,html,Javascript,Html,嗨,我已经用HTML和javascript构建了一个带有导航箭头的图像滑块。我需要一个暂停按钮来停止幻灯片放映,因为它每5秒旋转一次图像。有人能帮我吗 var指数=1; 函数加索引(n){ 指数=指数+1; showImage(索引); } showImage(1); 函数showImage(n){ var i; var x=document.getElementsByClassName(“幻灯片”); 如果(n>x.length){index=1}; 如果(nx.length){ 索引=1

嗨,我已经用HTML和javascript构建了一个带有导航箭头的图像滑块。我需要一个暂停按钮来停止幻灯片放映,因为它每5秒旋转一次图像。有人能帮我吗


var指数=1;
函数加索引(n){
指数=指数+1;
showImage(索引);
}
showImage(1);
函数showImage(n){
var i;
var x=document.getElementsByClassName(“幻灯片”);
如果(n>x.length){index=1};
如果(n<1){index=x.length};

对于(i=0;i您需要为此使用
clearTimeout()
。因此,您将计时器分配给一个全局变量(因为它需要跨函数访问),然后:

var a = 0; // Global

a = setTimeout(autoSlide, 5000); // Replace this line.
并创建一个函数:

function stop() {
  clearTimeout(a);
}
将其添加到按钮:

<button class="btn" onclick="stop();">Stop</button>
停止
完整片段

var指数=1;
var a=0;
函数加索引(n){
指数=指数+1;
showImage(索引);
}
showImage(1);
函数showImage(n){
var i;
var x=document.getElementsByClassName(“幻灯片”);
如果(n>x.length){
索引=1
};
if(n<1){
索引=x.length
};
对于(i=0;ix.length){
索引=1
}
x[index-1].style.display=“block”;
索引++;
a=设置超时(自动滑动,5000);
}
函数停止(){
清除超时(a);
}

❮
❯
停止

现在,您可以通过单击来暂停和取消暂停。附加变量可检查滑块是否处于暂停状态,以及是否设置为true,然后防止执行
设置超时
并确保图像在暂停时不会更改,请在函数
showImage
autoSlide的开头使用nice
if
语句应该有帮助

var指数=1;
var超时=null;
var=false;
函数加索引(n){
索引++;
showImage(索引);
}
函数停止滑块(事件){
暂停=!暂停;
event.innerHTML=暂停?“开始”:“停止”;
暂停?clearTimeout(超时):超时=设置超时(autoSlide,5000);
}
showImage(1);
函数showImage(n){
如果(暂停)返回;
var i;
var x=document.getElementsByClassName(“幻灯片”);
如果(n>x.length){
索引=1
};
if(n<1){
索引=x.length
};
对于(i=0;i

❮
停止
❯

寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。阅读内容。我们需要示例代码,向我们展示您所做的事情以及遇到问题的位置。您能检查示例代码吗运行。如果可以,请更正它。您没有解释任何内容…
:(
但这是一种暂停和取消暂停的好方法!进行了编辑,我以前应该做一些解释。现在看起来不错。