2014-12-19 101 views
0

嗨,我發現這個代碼,我不知道如何使它停留3秒鐘如何使這種改變邊框顏色動畫停止

function flashit() 
{ 

var myborder = document.getElementById('my'); 

if (myborder.style.borderColor=="green") 

myborder.style.borderColor="red" ; 

else 
myborder.style.borderColor="green" ; 


} 
setInterval('flashit()', 400) ; 
+0

您可以使用CSS來替代? – 2014-12-19 01:44:41

+0

你嘗試過'setTimeout()'嗎? – depquid 2014-12-19 01:45:21

+0

我試圖讓它使用Javascript :)對不起,新手在這裏.. – AllforAurora 2014-12-19 01:46:04

回答

1

setTimeout後閃爍,setInterval返回指回超時的標識符/間隔;然後可以用它來解除它們。

所以我改變了你的代碼來演示。如果您有任何問題,請發表評論。

function flashit(){ 
    var myborder = document.getElementById('my'); 

    if (myborder.style.borderColor=="green"){ 
     myborder.style.borderColor="red" ; 
    } else { 
     myborder.style.borderColor="green" ; 
    } 
} 
var intervalId = setInterval(flashit, 400) ; 
setTimeout(function() { 
    clearInterval(intervalId); 
}, 3000); 
+0

非常感謝@Vince我仍然在努力學習;)這就像魅力! – AllforAurora 2014-12-19 01:55:30

+0

不是問題!你真幸運,你不必在愚蠢的時代學習JS:p(想想2005年以前的版本) – Vince 2014-12-19 01:57:42

+0

Lol :)我希望我能掌握它。 – AllforAurora 2014-12-19 02:00:08

0
var refreshIntervalId = setInterval(flashit, 400); 

// Stop after 3 seconds 
setTimeout(function(){clearInterval(refreshIntervalId)}, 3000); 

JSFiddle