所以我一直在努力JavaScript警告動畫,JavaScript的爆發while循環當函數被調用再次
function addalert(text){
if(alertid >= 100){
alertid = 0;
}
document.body.innerHTML += ("<div id=\"" + alertid + "\" " + "class=\"alert\">" + text + "</div>");
var top = parseInt($("#"+alertid).css('top'));
while($("#"+alertid).css('top') > 0){
setInterval($("#"+alertid).css({"top": $("#"+alertid).css("top") - 1,"opacity":$("#"+alertid).css("opacity") -0.1}), 100);
}
$("#"+alertid).css({"top":"0","opacity":"0"});
alertid++;
return;
}
的問題是,當你調用這個函數時,函數已經調用,動畫正在進行中,它似乎打破了動畫。
編輯:
我使用jquery動畫試過了,沒有工作
function addalert(text){
if(alertid >= 100){
alertid = 0;
}
document.body.innerHTML += ("<div id=\"" + alertid + "\" " + "class=\"alert\">" + text + "</div>");
$("#"+alertid).animate({"top":"0px","opacity":"0"}, {easing: "linear", duration: 2000, complete: function(){$("#"+alertid).remove()} });
/*$("#"+alertid).css({"top":"0","opacity":"0"});*/
alertid++;
}
你爲什麼不使用'$(「#」 + alertid ).animate(...)'? – trincot
你最好重新考慮,並以另一種(更好)的方式去做。嘗試使用更多的CSS。 – skobaljic
我相信你對'setInterval'的理解是不正確的。 'setInterval'不會「暫停」你的代碼。 – Joseph