javascript - setInterval,单击某物然后清除Interval,然后几秒钟再次setInterval
问题描述
我想创建一个运行使用 setInterval 的滑块图像,当我单击缩略图时,图像滑块停止,但几秒钟后我希望它继续运行 setInterval,我被困在这里。我不知道如何编写代码以便 setInterval 再次运行
//auto animate
let counter = 0;
function imageChange() {
bigImage.src = thumb[counter++].src;
if(counter >= thumb.length) {
counter = 0;
}
}
let gallery = setInterval(imageChange, 1000);
//click thumb stop Animate then runs again
for(t of thumb) {
t.addEventListener('click', (e) => {
bigImage.src = e.target.src;
clearInterval(gallery);
//I'm stuck here :(
});
}
解决方案
pause = setTimeout(() => { gallery = setInterval(imageChange, 1000)} ,3000);
像这样
let pause;
//auto animate
let counter = 0;
function imageChange() {
bigImage.src = thumb[counter++].src;
if(counter >= thumb.length) {
counter = 0;
}
}
let gallery = setInterval(imageChange, 1000);
//click thumb stop Animate then runs again
for(t of thumb) {
t.addEventListener('click', (e) => {
bigImage.src = e.target.src;
clearInterval(gallery);
clearTimeout(pause);
pause = setTimeout(() => { gallery = setInterval(imageChange, 1000)} ,3000);
});
}
我会委托
let pause;
//auto animate
let counter = 0;
function imageChange() {
bigImage.src = thumb[counter++].src;
if(counter >= thumb.length) {
counter = 0;
}
}
let gallery = setInterval(imageChange, 1000);
//click thumb stop Animate then runs again
document.getElementById('thumbContainerId').addEventListener('click',function(e) {
bigImage.src = e.target.src;
clearInterval(gallery);
clearTimeout(pause);
pause = setTimeout(() => { gallery = setInterval(imageChange, 1000)} ,3000);
});
推荐阅读
- msbuild - MSBuild:如何找出特定文件添加到 _CopyFilesMarkedCopyLocal 的位置?
- stripe-payments - 条纹连接的帐户 webhook 因未使用我的帐户创建的错误事件而被解雇
- django - 带有 Django Rest Auth 的自定义注册表单 - 错误:save() 采用 1 个位置参数,但给出了 2 个
- firebase - Firebase 提供了哪些解决方案来降低实时数据库的成本?
- if-statement - Power BI 中具有多个条件的 DISCOUNT
- .net-core - 使用外部系统的域服务
- xml - XSL 选择变量标签
- azure-pipelines - 有条件地将 --dry-run 添加到 Azure Pipelines 中的发布步骤
- ios - 努力使集合视图高度适合内容
- amazon-web-services - 在同一个存储桶中复制 S3 对象不起作用