2014-12-19 71 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