0
我想從動畫中刪除一個動畫完成後的動畫,但目前看起來像在動畫第一次迭代之後發生刪除動作。淡出動畫後刪除div - javascript
function $(el) { return document.getElementById(el); }
var divFirst = $('first');
if(divFirst)
divFirst.addEventListener("click", addSecond);
function removeSecond()
{
fadeOut();
var child = $('second');
console.log("remove called");
child.remove();
}
function addSecond()
{
console.log("addSecond called");
var aContainer = document.createElement('div');
aContainer.setAttribute('id', 'second');
aContainer.innerHTML = "Second";
aContainer.addEventListener("click", removeSecond);
document.body.appendChild(aContainer);
fadeIn();
}
function fadeIn()
{
var secondDiv = $('second');
if(secondDiv)
{
secondDiv.style.opacity ? secondDiv.style.opacity :
secondDiv.style.opacity = "0.0";
if(parseFloat(secondDiv.style.opacity) <= 1)
{
secondDiv.style.opacity = parseFloat(secondDiv.style.opacity) + 0.05;
setTimeout(fadeIn, 50);
}
}
}
function fadeOut()
{
var secondDiv = $('second');
if(secondDiv)
{
console.log(secondDiv.style.opacity);
if(parseFloat(secondDiv.style.opacity) >0)
{
secondDiv.style.opacity = parseFloat(secondDiv.style.opacity) - 0.05;
setTimeout(fadeOut, 50);
}
}
}
這裏的jsfiddle:http://jsfiddle.net/ny85ckk2/ 如果我刪除child.remove()調用,動畫持續到年底。 有什麼想法?
非常感謝
我常清潔解決方案的粉絲,所以第二個選項對我來說是最好的選擇,但它仍然不起作用 http://jsfiddle.net/ny85ckk2/1/ 我明白這個主意,但回調仍然沒有被調用:/ – CKY 2014-11-22 12:34:25
@CKY:我錯了sed那個'fadeOut'自稱(我不知道*我怎麼錯過了,但是...)。所以問題在於最終到達'0'的調用沒有'callback'參數。我已經修復它。 – 2014-11-22 13:48:01
謝謝,現在更清晰:) – CKY 2014-11-22 15:22:59