优化使用CSS掩码的CSS3动画

时间:2012-12-20 18:07:21

标签: css html5 css3 animation

我正在研究基于CSS3的动画,其中我有一个以线性渐变为背景的div,然后使用-webkit-mask-image属性将PNG用作遮罩。

要使其动画,我想将渐变顶部的蒙版移动。它工作正常,看起来华丽,但我的问题是它有点杀死CPU。

这是动画:

@keyframes moveMask {
    0%  { -webkit-mask-position: 0px 0px;}
    100% { -webkit-mask-position: 2000px 0px; }
}

我用它来称呼它:

animation: moveMask 200s linear infinite alternate;

我试图添加以下技巧,但它没有改变任何东西:

transform: translate3d(0,0,0);
-webkit-transform: translate3d(0,0,0);

关于如何优化它的任何想法?

1 个答案:

答案 0 :(得分:0)

Rich Bradshaw指出,我认为你会发现它的优化程度不高。但是要实现类似的效果,您可以创建一个动画GIF,将画布大小加倍,然后在画布另一半的每一帧上放置一个静态版本的GIF。这样,动画总是在后台无形地播放,只要你想要显示动画版本,就可以通过改变图像的位置来切换到它。

此技术的一个问题是,当您触发动画时,动画不一定会从头开始。这可能对您的特定动画很重要,也可能不重要。