-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>

我看不出任何问题,并且相同的脚本在另一个文件中运行...

我只想让动画基本上循环播放。但它运行一次,然后死掉,我认为 cleartimeout 不是问题。???

4

2 回答 2

0

找到了解决方法尽管我仍然不确定我是否正确清除了计时器。但它已经完成了工作,所以现在肯定没问题......谢谢你的帮助......

这是脚本..

<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>
于 2017-07-27T23:39:03.933 回答
-1

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

于 2017-07-27T23:12:24.130 回答