Timer clearTimeout设置间隔不工作。但在其他脚本中是否有?

Timer clearTimeout设置间隔不工作。但在其他脚本中是否有?,timer,setinterval,cleartimeout,Timer,Setinterval,Cleartimeout,我希望这个动画在整个页面持续时间内不断循环,但由于某些原因,clearTimer无法完成任务。或者我错误地认为清除计时器会在函数被授予时产生循环 <script> (function () { var a1; a1 = setTimeout(anim1,9000); var a2; a2 = setTimeout(anim2,10000); var a3; a3 = setTimeout(anim3,11000); var a4; a4 = setTimeout(anim4,1

我希望这个动画在整个页面持续时间内不断循环,但由于某些原因,clearTimer无法完成任务。或者我错误地认为清除计时器会在函数被授予时产生循环

<script>
(function () {
var a1;
a1 = setTimeout(anim1,9000);

var a2;
a2 = setTimeout(anim2,10000);

var a3;
a3 = setTimeout(anim3,11000);

var a4;
a4 = setTimeout(anim4,12000);

function anim1() {
document.getElementById("tx1").animate([
  { transform: "translateY(0px)"},
  { transform: "translateY(-10px)"}, 
  { transform: "translateY(0px)"}
], {
  duration: 1000,
})
}

function anim2() {
document.getElementById("tx2").animate([
{ transform: "translateY(0px)"},
  { transform: "translateY(-10px)"}, 
  { transform: "translateY(0px)"}
], {
  duration: 1000,
})
}

function anim3() {
document.getElementById("tx3").animate([
 { transform: "translateY(0px)"},
  { transform: "translateY(-10px)"}, 
  { transform: "translateY(0px)"}
], {
  duration: 1000,
})
}

function anim4 () {
clearTimeout(a1);
clearTimeout(a2);
clearTimeout(a3);
clearTimeout(a4);

}
})();


</script>

(功能(){
变量a1;
a1=设置超时(19000);
VarA2;
a2=设置超时(210000);
var a3;
a3=设置超时(anim311000);
var a4;
a4=设置超时(Anim412000);
函数anim1(){
document.getElementById(“tx1”).animate([
{transform:“translateY(0px)”},
{transform:“translateY(-10px)”},
{transform:“translateY(0px)”}
], {
持续时间:1000,
})
}
函数2(){
document.getElementById(“tx2”).animate([
{transform:“translateY(0px)”},
{transform:“translateY(-10px)”},
{transform:“translateY(0px)”}
], {
持续时间:1000,
})
}
函数3(){
document.getElementById(“tx3”).animate([
{transform:“translateY(0px)”},
{transform:“translateY(-10px)”},
{transform:“translateY(0px)”}
], {
持续时间:1000,
})
}
函数4(){
清除超时(a1);
清除超时(a2);
清除超时(a3);
清除超时(a4);
}
})();
我看不出任何问题,同一个脚本在另一个文件中运行


我只想让动画基本上循环。但它只运行一次,然后就消失了,我认为cleartimeout不是问题所在

您应该将setTimeout返回的值传递给clearTimeout函数。
在您的情况下,应该是clearTimeout(a1)而不是clearTimeout(anim1)等等。

找到了一个解决方法,尽管我仍然不确定我是否正确地清除了计时器。但它完成了任务,所以现在一定没事了。。。谢谢大家的帮助

这是剧本

<script>


window.onload=function start() {
var a1 = setTimeout(anim1,9000);

var a2 = setTimeout(anim2,10000);

var a3 = setTimeout(anim3,11000);

var a4 = setTimeout(anim4,12000);

function anim1() {
document.getElementById("tx1").animate([
  { transform: "translateY(0px)"},
  { transform: "translateY(-10px)"}, 
  { transform: "translateY(0px)"}
], {
  duration: 1000,
})

}

function anim2() {


document.getElementById("tx2").animate([
{ transform: "translateY(0px)"},
  { transform: "translateY(-10px)"}, 
  { transform: "translateY(0px)"}
], {
  duration: 1000,
})

}

function anim3() {
document.getElementById("tx3").animate([
 { transform: "translateY(0px)"},
  { transform: "translateY(-10px)"}, 
  { transform: "translateY(0px)"}
], {
  duration: 1000,
})

}

function anim4() {
clearTimeout("a3")
clearTimeout("a1");
clearTimeout("a2");
clearTimeout("a4");
start();
}

}
</script>

window.onload=函数start(){
var a1=设置超时(19000);
var a2=设置超时(210000);
var a3=设置超时(anim311000);
var a4=设置超时(anim412000);
函数anim1(){
document.getElementById(“tx1”).animate([
{transform:“translateY(0px)”},
{transform:“translateY(-10px)”},
{transform:“translateY(0px)”}
], {
持续时间:1000,
})
}
函数2(){
document.getElementById(“tx2”).animate([
{transform:“translateY(0px)”},
{transform:“translateY(-10px)”},
{transform:“translateY(0px)”}
], {
持续时间:1000,
})
}
函数3(){
document.getElementById(“tx3”).animate([
{transform:“translateY(0px)”},
{transform:“translateY(-10px)”},
{transform:“translateY(0px)”}
], {
持续时间:1000,
})
}
函数4(){
清除超时(“a3”)
clearTimeout(“a1”);
clearTimeout(“a2”);
clearTimeout(“a4”);
start();
}
}

你能解释一下你认为anim4函数在做什么吗?我也没有提供必要的语法,即-->“-可能与它有关系。。。