使用CSS动画的滞后和闪烁动画

时间:2017-01-23 19:21:04

标签: css-transitions

我正在开发一个交互式网页用户界面,并且遇到了闪烁和落后的动画。

我几乎完全使用CSS转换,使用jQuery添加和删除类来启动/停止任何特定的动画。我听说这比使用jQuery动画更能提升性能,但在使用Chrome(应用程序的预期浏览器)时,我仍然会遇到闪烁和滞后的动画。

在这里查看: lib.ncsu.edu/hunt_touchscreens/demo

以下是我正在进行的转换之一的示例。它非常简单,我没有使用任何webkit,o等前缀。

#x {
    opacity: 0;
    transition: opacity .5s;
}

我希望这个问题不是开放式的,但我很好奇这只是浏览器的一个限制,它有很多不同的并发转换,或者是否有有效的策略来避免这些性能问题。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:2)

这可能需要花费很多工作,但是在你的网站中你左右两行transition,并且对浏览器征税,因为它必须重做它的布局,因为它不仅需要计算单个元素移动,但周围的任何其他元素。

使用高性能css动画的诀窍只是坚持浏览器非常快的几个属性,特别是当你有像你这样的转换重页时,很多元素可能会同时移动。

详细了解here,但其要点是使用以下属性来更改元素,

  • 位置 - 转换:translateX(n)translateY(n)translateZ(n);
  • 比例 - 变换:比例(n);
  • 旋转 - 变换:旋转(ndeg);
  • 不透明度 - 不透明度:n;

因此,您需要将所有这些“左”位置更改重写为某种形式的transform: translateX();,并考虑如果您希望获得最佳效果,这会如何影响页面中的其他元素。