【问题标题】:Fix HTML/CSS Animations performance修复 HTML/CSS 动画性能
【发布时间】:2015-01-26 04:07:45
【问题描述】:

我制作了一个带有 css 动画和过渡的 HTML 页面

<div class="container-fluid" id="team">
<div class="row first">
    <div class="wrapper"></div>
</div>
<div class="row second">
    <div class="wrapper"></div>
    <div class="wrapper clickable">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.0.name}}</h2>
                <h5>{{team.0.position}}</h5>
                <p>{{team.0.description}}</p>
                <a href="">Learn more about {{team.0.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
    <div class="wrapper clickable right-side">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.6.name}}</h2>
                <h5>{{team.6.position}}</h5>
                <p>{{team.6.description}}</p>
                <a href="">Learn more about {{team.6.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
    <div class="wrapper"></div>
</div>
<div class="row third">
    <div class="wrapper clickable">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.3.name}}</h2>
                <h5>{{team.3.position}}</h5>
                <p>{{team.3.description}}</p>
                <a href="">Learn more about {{team.3.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
    <div class="wrapper clickable">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.2.name}}</h2>
                <h5>{{team.2.position}}</h5>
                <p>{{team.2.description}}</p>
                <a href="">Learn more about {{team.2.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
    <div class="wrapper clickable right-side">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.4.name}}</h2>
                <h5>{{team.4.position}}</h5>
                <p>{{team.4.description}}</p>
                <a href="">Learn more about {{team.4.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
</div>
<div class="row fourth">
    <div class="wrapper"></div>
    <div class="wrapper clickable">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.5.name}}</h2>
                <h5>{{team.5.position}}</h5>
                <p>{{team.5.description}}</p>
                <a href="">Learn more about {{team.5.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
    <div class="wrapper clickable right-side">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.1.name}}</h2>
                <h5>{{team.1.position}}</h5>
                <p>{{team.1.description}}</p>
                <a href="">Learn more about {{team.1.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
    <div class="wrapper"></div>
</div>
<div class="row fifth">
    <div class="wrapper"></div>
    <div class="wrapper join">
        <a href="">
            <span>+ Join</span>
        </a>
    </div>
    <div class="wrapper clickable right-side">
        <div class="shadow"></div>
        <div class="description">
            <div>
                <h2>{{team.7.name}}</h2>
                <h5>{{team.7.position}}</h5>
                <p>{{team.7.description}}</p>
                <a href="">Learn more about {{team.7.firstName}}</a>
            </div>
        </div>
        <img src="">
    </div>
</div>
<div class="row sixth">
    <div class="wrapper"></div>
    <div class="wrapper blank"></div>
    <div class="wrapper"></div>
</div>
<div class="row seventh">
    <div class="wrapper"></div>
    <div class="wrapper"></div>
</div>

完整的工作版本在这里可用:http://jsfiddle.net/xs4mm5jd/

如您所见,它运行良好,动画快速流畅。

但是,当我添加一些图像时:http://jsfiddle.net/xs4mm5jd/1/ 动画有问题。有没有什么办法可以加快性能?

【问题讨论】:

  • 嗯。它们都在 chrome for mac 上运行良好。
  • 是的,这取决于计算机的速度。但在检查 Chrome 检查器后,它会重新呈现每一帧中的所有内容。
  • 我添加了重图的版本,你可以看到效果:jsfiddle.net/xs4mm5jd/4

标签: html css css-transitions css-animations


【解决方案1】:

即使我没有看到您的小提琴性能不佳,您也可以在制作动画时触发硬件加速。

有些人使用一种技巧,将transform: translateZ(0);transform: translate3d(0, 0, 0); 应用于动画元素。

如果你看到任何性能提升,你可以在这里测试一下:http://jsfiddle.net/gleezer/xs4mm5jd/3/

这是一个关于它的article

第二个更新(可能更好)的替代方法是在 CSS 中使用 will-change 属性,例如:will-change: transform;

阅读更多相关信息here

【讨论】:

  • 我之前尝试过使用“will-change”属性,但没有取得任何结果。但是这个 translateZ 工作得很好。非常感谢。
猜你喜欢
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 2014-09-30
  • 2010-12-18
相关资源
最近更新 更多