html5 gpu游戏,通过GPU来优化CSS 2D动画效果

电脑设备通过GPU来支持CSS 3D的转换线程。GPU是一个专门用于像素操作的电子设备。GPU通常用于处理游戏、本地应用程序和3D动画,而不是用于页面的2D transforms。当前的浏览器依靠CPU来支持2D动画,这会影响在所有平台下CSS动画的平滑性和流畅性,尤其是在移动设备上。

我们可以通过一些小技巧来使用将GPU使用在2D动画上。下面是一个例子,试试用鼠标移动到下面的图片上看看。

div#vintage-racers {

width: 33%;

position: relative;

overflow: hidden;

border: 2px solid #000;

font-size: 0;

height: 300px;

}

div#vintage-racers img {

position: absolute;

left: 0;

transition: 1s all ease-in-out;

}

div#vintage-racers:hover img {

left: -100%;

}

68753040fd500113971a42ec5b708378.png

当鼠标滑过div时图片开始移动,你会看到结果有一些延迟和画面抖动。为了制作平滑的动画效果,我们可以添加一个CSS 3D transform。这里的诀窍是在transform不会改变元素的外观,我们只是需要简单的包含3d transform来打开GPU功能,这将使得2D transition 也会被GPU影响。

div#vintage-racers img {

position: absolute;

left: 0;

transition: 1s left ease-in-out;

transform: translate3d(0,0,0);

}

注意:你需要为各个厂商的浏览器添加上前缀,还有这里我们将transition 的素材从all该为ileft来提高动画的性能。使用2D translate函数要比使用相对定位来移动图片的效果要好得多。

68753040fd500113971a42ec5b708378.png

效果如右边的图像所示:

如果你的电脑足够好,你会看到第二种动画效果要比第一种动画效果要平滑顺畅得多。如果你想知道GPU是否在工作,Chrome有一个实验性的工具可以检测你的动画的性能,使用方法如下:在Chrome的URL栏键入:about:flags。

找到FPS Counter,点击enable来启用它。

重启Chrome浏览器。

在页面渲染时如果GPU被启用,浏览器上将会出现FPS计数器。你可以将代码中的3D transform移除掉看看FPS计数器是否还会出现。

这个技术的可能有利于移动设备上的小CSS动画。但是使用这个技术要注意,智能手机和平板电脑的显存都相对比较小,所以测试非常重要,如果你发现这个技术可以在桌面设备上很好的运行,而在移动设备上不行,你可以通过@media query来在移动设备上关闭它。

@media only screen and (max-device-width: 1024px) {

div#vintage-racers img { transform: none; }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值