CSS 动画属性性能

发布于 2020-06-07 10:13:11 字数 2006 浏览 1199 评论 0

CSS 动画属性会触发整个页面的重排 relayout、重绘 repaint、重组 recomposite

Paint 通常是其中最花费性能的,尽可能避免使用触发paint的CSS动画属性,这也是为什么我们推荐在CSS动画中使用 webkit-transform: translateX(3em) 的方案代替使用 left: 3em,因为 left 会额外触发layout与paint,而 webkit-transform 只触发整个页面 composite

div {
  -webkit-animation-duration: 5s;
  -webkit-animation-name: move;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
  width: 200px;
  height: 200px;
  margin: 100px;
  background-color: #808080;
  position: absolute;
}
@-webkit-keyframes move{
  from {
    left: 100px;
  }
  to {
    left: 200px;
  }
}

如下图使用 left 将持续触发页面重绘,表现为红色边框:

@-webkit-keyframes move{
  from {
    -webkit-transform: translateX(100px);
  }
  to {
    -webkit-transform: translateX(200px);
  }
}

如下图使用 -webkit-transform 页面只发生重组,表现为橙色边框:

CSS 属性在 CSS 动画中行为表

参考

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

6118422078

文章 0 评论 0

Bonjour°[大白

文章 0 评论 0

別甾虛僞

文章 0 评论 0

qq_FynBW0

文章 0 评论 0

浅笑依然

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文