使用opacity: 0
动画元素消失时,将显示属性设置为'无'要从视图中删除它,display:none
会立即执行,无论如何等待动画完成,然后使用display:none
以下是以下示例:http://jsfiddle.net/zg3q7jLt/38/
var box = document.querySelector('#box');
function addCssTransition(elem, speed) {
elem.style.cssText +=
';transition: all ' + speed + 's ease-in-out; ' +
'-moz-transition: all ' + speed + 's ease-in-out;' +
'-webkit-transition: all ' + speed + 's ease-in-out';
}
function fadeOut(elem, speed){
addCssTransition(elem, speed);
elem.style.opacity = 0;
elem.style.display = 'none';
}
fadeOut(box, 0.75);
答案 0 :(得分:1)
您可以收听过渡结束事件,但目前只有problematic and in flux。
你最安全的赌注可能是setTimeout()
:
function fadeOut(elem, speed){
addCssTransition(elem, speed);
elem.style.opacity = 0;
setTimeout( function() { elem.style.display = 'none'; }, speed * 1000 );
}
答案 1 :(得分:0)
显示:无法进行转换,因为您无法部分显示。
您可以像这样设置Timeout:
var box = document.querySelector('#box');
function addCssTransition(elem, speed) {
elem.style.cssText +=
';transition: all ' + speed + 's ease-in-out; ' +
'-moz-transition: all ' + speed + 's ease-in-out;' +
'-webkit-transition: all ' + speed + 's ease-in-out';
setTimeout(function(){
elem.style.cssText +=
';display:none';
}, speed);
}
function fadeOut(elem, speed){
addCssTransition(elem, speed);
elem.style.opacity = 0;
elem.style.display = 'none';
}
fadeOut(box, 0.75);