如何使用 CSS 转换不显示元素的属性?我目前的解决方案是使用 JavaScript 将显示设置为阻塞,等待 10 毫秒进行重绘,然后应用更改我想要动画的属性的类。
注意:我使用 jQuery 来简化代码。
CSS - 以动画不透明度为例。不要关心 $.show()。
.element
{
display:none;
opacity:0;
-webkit-transition:all 0.5s;
-moz-transition:all 0.5s;
-ms-transition:all 0.5s;
-o-transition:all 0.5s;
transition:all 0.5s;
}
.element.shown
{
opacity:1;
}
JavaScript
function show()
{
var $element=$('.element');
$element.css({display:'block'});
//Add class a few moments later than chaning display to block, otherwise animations CSS Transitions won't fire
setTimeout(function(){
$element.addClass('shown');
},10);
}
function hide()
{
var $element=$('.element');
$element.removeClass('shown');
//Remove element from display after transition ends
$element.on('webkitTransitionEnd otransitionend oTransitionEnd MSTransitionEnd transitionend',function()
{
$element.css({display:'none'});
});
}
我觉得应该有更好的方法,只有 CSS 的方法。在那儿?