Firefox 和 CSS3 动画 - 为啥我的文本会抖动?

Posted

技术标签:

【中文标题】Firefox 和 CSS3 动画 - 为啥我的文本会抖动?【英文标题】:Firefox and CSS3 Animations - Why is my text wobbling?Firefox 和 CSS3 动画 - 为什么我的文本会抖动? 【发布时间】:2012-09-16 08:50:28 【问题描述】:

示例链接:http://jsfiddle.net/kArnq/1/

在 Webkit 中,文本的动画效果完美。没有问题。

不过,在 Firefox 中,字符在滚动时会稍微晃动。也就是说,字符之间的空间在滚动时会稍微移动。

我的猜测是每个字符的计算位置存在舍入问题,但我希望有办法解决。

有什么想法吗?

/edit:这是正在发生的事情的动画 gif(当文本移动时会发生这种情况。我只是截取了两张屏幕截图并将它们重叠,这样你就可以看到我所看到的)。

http://i.imgur.com/bij8A.gif

【问题讨论】:

晃动……就像轻微的水平抽动一样,好像有什么东西让字母在很短的时间内停止了? 差不多,但不完全。更像是字母在滚动时相对于彼此移动位置。就像他们的字距调整(基本上,对于任何不知道的人来说,字母间距)正在略有变化。 “Jiggle”是我能想到的视觉效果最好的词。 “摇晃”,也许吧? 添加了一个动画 gif 来帮助解释。 明白了。我在 FF15.0.1 上没有看到。动画中有打嗝,但没有角色间的抖动。 继 Marc B 的评论之后,动画打嗝就消失了。尝试将 FF 更新到最新版本(无论如何,它都有很酷的新功能,你会喜欢的)。 【参考方案1】:

我尝试使用转换,对我来说效果更好:

#foo b
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: linear;
    -moz-animation-duration:10s;
    -moz-animation-name: scroll;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    -webkit-animation-duration:10s;
    -webkit-animation-name: scroll;
    white-space: nowrap;
    font-size: 6em;
    display:block;
    -moz-transform:  translateX(0px);


@-moz-keyframes scroll 
    0% -moz-transform: translateX(0px);
    100% -moz-transform: translateX(-620px);

看看这个问题 Improving CSS3 transition performance

【讨论】:

以上是关于Firefox 和 CSS3 动画 - 为啥我的文本会抖动?的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 中的 CSS3 动画和背景图像

为啥这个 CSS3 动画在 MS Edge 或 IE11 中不起作用?

新“页面加载”时 Firefox 中的 Choppy 和 Jerky CSS3 动画

Firefox 中缓慢的 CSS3 动画闪烁

为啥我的 CSS3 动画在 Chrome 中的表现如此缓慢?

为啥我的动画在 Firefox 中不起作用?