我想在height属性中添加一个过渡,在JS中动态地添加,并同时更改高度属性(以绑定过渡),例如:
$('#foo').css({transition: 'height 5s linear', height: '100%'});
高度更改正确,但没有发生过渡。如果这次我改变高度,过渡是有效的。
那为什么第一次不工作呢?我该怎么做?
编辑
我发现了一个真正的问题:在尝试更改CSS之前,我在JS中创建了DOM元素#foo:http : //jsfiddle.net/31d57n55/2/如果取消注释第2行,它将起作用,因为它可以节省时间到可以使用的新DOM ...那么我如何知道DOM的这个新节点何时准备就绪?
问题:现在是时候添加DOM元素(http://jsfiddle.net/31d57n55/2/)
$('<div id="foo"></div>').appendTo('body') //console.log($('#foo')); $('#foo').css({height: '100px', transition: 'height 5s linear'});
如果取消注释第2行,它将起作用(在FF上,在chrome setTimeout值为0的情况下:http : //jsfiddle.net/31d57n55/8/),因为这样可以让DOM的时间准备好...
解决方案:2种可能的破解方法,请查看CSS过渡未触发
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句