【问题标题】:CSS scale animation jerky in ChromeChrome中的CSS缩放动画生涩
【发布时间】:2016-09-03 14:30:20
【问题描述】:

我有一个保存按钮,当需要保存表单时会跳动。

CSS:

@keyframes pulse-scale {
  from { transform: scale(1); }
  to { transform: scale(1.1); }
}
.btn-alert {
  animation: 1s pulse-scale ease-out infinite alternate;
}

HTML:

<button class="btn btn-round btn-alert">
  <i class="fa fa-check"></i>
</button>

问题是它在 Chrome 49 中表现不佳。我确信它曾经很好,但现在随着它的缩放,它似乎捕捉到某些像素对齐的比例,并在模糊和锐利之间切换,导致“生涩”的动画。 在 Firefox 38 中似乎没问题 在 Firefox 38 中,它最初可以正常播放,但在等待一段时间(?)或切换到另一个窗口并返回后,它的播放效果也很差。

需要明确的是,这是一个图像采样(质量)问题,而不是帧率(速度)问题。这是一个关于它的外观的视频。从左到右:Firefox、几分钟后的 Firefox、Chrome。只有左边的播放正确。

有没有我可以设置的 CSS 属性让它更好玩 - 例如强制它使用不同的插值模式?我在关键帧上尝试了adding translateZ(0),但似乎没有帮助。

Demo in JSFiddle

【问题讨论】:

  • 你试过@-webkit- to 吗?
  • @AdnanAkram 我试过-webkit-transform-webkit-animation - 你是这个意思吗?但是根据开发工具,我的浏览器会忽略这些属性(被transformanimation 取代)。
  • 在我看来是不是很生涩?不过我在 Chrome 50 上。你说的“生涩”是什么意思?您是否也尝试过使用ease-out 并尝试其他一些设置?另外,当您可以使用transition 时,为什么还要使用animation
  • @aug 我的意思是图像质量很差,而且它似乎在播放时左右移动。用视频更新了问题。在 Chomium/Linux 和我的同事在 Chrome/OS X 上它很生涩。但 Safari 很好。过渡可以重复(循环播放)吗?
  • @DaniSpringer.com CSS 效果:参见演示。错误:在旧版 Chrome 中运行。制作动画:屏幕截图和 ImageMagick。嵌入图像:获得更多声誉,也许:)

标签: css google-chrome css-animations


【解决方案1】:

此错误似乎与 Chrome 49 有关,如果您升级到 Chrome 50,此错误已得到修复。

【讨论】:

  • 谢谢,但这些更改并不能解决问题。这不是帧速率问题 - 我认为这是图像采样问题。我会更新问题来说明这一点。
  • 这是什么图片?如果可能,您可以尝试使用基于矢量的图像吗?
  • 这不是光栅图像 - 它是带有圆角的 button 显示 vector font。如果按钮包含纯文本,也会出现同样的问题。
  • 这快把我逼疯了。我觉得我应该能够解决这个问题。如果将缩放动画从.btn-alert 移动到.btn-round,会发生什么?
  • 我尝试将它们全部归为一类,但没有帮助。这是一个simplified demo只有 动画属性和一个类 (.btn)。 ...那么你能重现这个问题吗?
猜你喜欢
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 2013-09-20
  • 1970-01-01
相关资源
最近更新 更多