2017-07-27 3 views
-1

私はこのアニメーションをページ期間中何度も繰り返すことを望みますが、何らかの理由でclearTimerがそのジョブを実行していません。または私は関数が付与されると、タイマーをクリアするとループを生成すると誤った考えをしている。clearTimeout setIntervalが機能しません。しかし、他のスクリプトでは?

<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が問題ではないと仮定します。 ???

+0

はあなたがanim4機能がやっていると思うかを説明することはできますか? –

答えて

-1

setTimeoutから返された値をclearTimeout関数に渡す必要があります。 あなたの場合、clearTimeout(anim1)の代わりにclearTimeout(a1)などが必要です。

0

解決策が見つかりましたが、私はタイマが正しくクリアされているかどうかまだ分かりません。しかし、そのスクリプトHERESに... ...今OKにする必要があり

をあなたの助けの人々のためのおかげで仕事をして...

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

私はまた、必要な構文を提供していませんでした.E - > "" - それは第1位でそれと関係しているかもしれません... – russbaker2016

関連する問題