我想将元素从可见变为不可见。
我知道我可以这样做:
element {
opacity:1;
}
element.fade {
opacity:0;
transition: opacity .5s linear;
}
这个问题是(现在)不可见元素仍然存在,占用空间。
我希望它能够消失然后完全消失,就像设置了display:none
一样。
答案 0 :(得分:4)
答案 1 :(得分:1)
将javascript超时设置为0.5秒,然后添加额外的css
var element = document.getElementsByClassName(fade)[0];
setTimeout(function() {
element.style.display="none";
}, 500);
答案 2 :(得分:1)
您可以挂钩transitionEnd
事件,然后当淡入淡出结束时,您可以在该事件处理程序中设置display: none
。或者,您可以使用不同类型的过渡,该过渡以不占空间的元素结束(例如将高度转换为0)。
要结束过渡的结束,你可以使用以下内容:
// for webkit browsers
node.addEventListener('webkitTransitionEnd', function() {
// set to display: none here
}, false);
对其他浏览器使用其他前缀和transitionEnd事件。