CSS转换不';当位置改变时,不能在Firefox中工作

CSS转换不';当位置改变时,不能在Firefox中工作,css,firefox,transitions,Css,Firefox,Transitions,我发现了讨厌的虫子。当父元素的位置同时发生变化时(在本例中是从固定到绝对),我尝试为子元素的CSS属性设置动画。这在Webkit浏览器中运行没有问题,但在Firefox(17.0.1版)中没有动画转换 JSFIDLE示例: 有什么办法可以让它在FF中工作吗 编辑 它在Firefox34中得到了修复 CSS 看来你找到了一个很好的bug。虽然这不是我最喜欢的修复方法,但它确实起到了作用。更改按钮2以在单击时执行此操作 $("#button2").on({ click: function(

我发现了讨厌的虫子。当父元素的位置同时发生变化时(在本例中是从固定到绝对),我尝试为子元素的CSS属性设置动画。这在Webkit浏览器中运行没有问题,但在Firefox(17.0.1版)中没有动画转换

JSFIDLE示例:

有什么办法可以让它在FF中工作吗

编辑 它在Firefox34中得到了修复

CSS


看来你找到了一个很好的bug。虽然这不是我最喜欢的修复方法,但它确实起到了作用。更改按钮2以在单击时执行此操作

$("#button2").on({
    click: function() {
        $("#container").toggleClass("some_state");

        setTimeout(function() {
            $("#container").toggleClass("some_state_position");
        }, 50);
    }
});

对于firefox,两个类的toggleClass()都会立即触发,从而导致转换效果出现一些问题。将超时设置为jQuery有足够的时间来处理它需要的内容,以便进行类似于Chrome中的转换,等等。我将超时设置为50ms,这似乎给了jQuery足够的时间来处理它需要做的事情。有时候,它会比我看到的更低,它会失败,并做你目前正在经历的事情。

嘿,是的,一个讨厌的好错误。谢谢你找到黑客来修复它。我不知道我是否会在我的案例中使用它,因为它需要额外的CSS和JS代码,而且这些动画只是视觉效果,但它确实有效!我已经向Mozilla提交了一份bug报告:在一年多之后仍然是最好的解决方案。谢谢你,伙计!很好的解决方法。这个bug似乎仍然存在:我确认…FF的bug仍然存在:(提交的bug报告:在Firefox34中,这个bug似乎已经解决了。
$("#button2").on({
    click: function() {
        $("#container").toggleClass("some_state");

        setTimeout(function() {
            $("#container").toggleClass("some_state_position");
        }, 50);
    }
});