当位置发生变化时,CSS转换在Firefox中不起作用
我发现恼人的错误。 我尝试在父级的位置同时改变时(在示例中它从固定位置改变为绝对位置),尝试对子元素的CSS属性进行动画处理。 这在Webkit浏览器中没有问题,但在Firefox(17.0.1)中没有动画过渡。
jsFiddle例子:http://jsfiddle.net/chodorowicz/bc2YC/5/
是否有任何解决方案使其在FF中工作?
编辑它在Firefox 34中修复https://bugzilla.mozilla.org/show_bug.cgi?id=625289
CSS
#container {
position:fixed; left:100px; top:100px;
}
#container.some_state_position {
position:absolute;
}
.box {
width:100px; height:100px;
background:blue;
}
.some_state .box {
background:red; width:50px; height:50px;
}
img, .box {
-webkit-transition:all 1.5s ease;
-moz-transition:all 1.5s ease;
-ms-transition:all 1.5s ease;
transition:all 1.5s ease;
}
img {width:100%;}
.some_state .other_container img {
width:50%;
}
看来你已经找到了一个很好的bug。 虽然这不是我最喜欢的解决方法,但它完成了这项工作。 改变你的button2做点击。
$("#button2").on({
click: function() {
$("#container").toggleClass("some_state");
setTimeout(function() {
$("#container").toggleClass("some_state_position");
}, 50);
}
});
对于firefox来说,toggleClass()对于两个类都会立即触发,导致转换效果出现一些问题。 把超时设置给jQuery足够的时间来处理它所需要的时间,以便做类似于Chrome中的转换等。我把超时设置为50ms,这似乎给了它足够的时间让jQuery处理它需要做的。 比我有时看到的要低,它会失败并做你目前正在经历的事情。
链接地址: http://www.djcxy.com/p/39559.html上一篇: CSS transition doesn't work in Firefox when position is changed