2013-10-14 99 views
3

我有一个DOM元素,我translateX()到一些新的位置。firefox css3翻译元素与溢出隐藏元素消失

在Firefox中,只要翻译发生,该元素就会消失。经过大量的调试后,似乎只有当通过某个动作将元素动态应用到元素时,才会发生这种情况,元素最初呈现后(如果css存在于页面加载中,则不会发生),只有当translateX值为大于元素宽度!此外,只有当dom元素具有“overflow:hidden”时才会发生这种情况。

所以,如果我有一个200像素框:

#box { width: 200px; overflow: hidden; } 

如果我翻译为199px,它完美的作品:

$('#box').css('transform', 'translateX(199px)') 

但是,如果我翻译成200像素,该框移动到新位置,然后一个第二后消失

$('#box').css('transform', 'translateX(200px)') 

这里是一个的jsfiddle:http://jsfiddle.net/vtkmZ/3/

  • 仅Firefox
  • 只有当DOM元素具有溢出:隐藏
  • 只有在翻译之后的动态应用第一渲染
  • 只有当平移X()值是比元件宽度大

这种情况一致。任何想法为什么发生这种情况,以及任何解决方法?我无法在网上找到任何东西。这是一个已知的错误?

+0

检查此链接: http://stackoverflow.com/questions/15405054/firefox-mobile -element-animated-with-translate3d-flows-out-from-parent-containe – user1386213

+0

我在Mac Chrome 36.0,Safari 7.0和Firefox 30.0之间的行为没有发现任何差异。 – jtheletter

回答