我有一个案例,CSS 3 过渡在 Firefox 中的行为与在 Chrome 或 Safari 中的行为不同。该示例可以在http://jsfiddle.net/inuwan/StKVQ/1/找到
我有 3 个略有不同的实现,只有第 2 个(move2)可以在 Firefox 中正常工作。我有一个 div,我要在屏幕外左转,然后更改其内容,然后将同一个 div 从屏幕右外转换到屏幕中间。
情况 1 (move1) - 仅适用于 Chrome/Safari。div 转换正确地离开了屏幕。然而,在 Firefox 中,当将 div 转换回屏幕中间时,它不会滑入,而只是出现。
在案例 2 (move2) - 删除 css 类以使元素从屏幕右侧向左转换的代码在案例 1 中是内联的。在案例 2 中,该代码现在已被包装在额外的 setTimeout 中,时间为 2 秒延迟。现在适用于 Firefox、Chrome 和 Safari。
在案例 3 (move3) - 与案例 2 相同,但添加了 document.body.style.overflowX = 'hidden' 以便水平滚动条不可见,并且在我们转换 div 时会发生变化。这会导致 div 离开屏幕的过渡不会在 Firefox 中滑动,div 就会消失。
差异背后是否有原因,或者它只是您必须注意的那些古怪的事情之一?