你知道我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能,从而提升性能吗?

现在大多数电脑的显卡都支持硬件加速。鉴于此,我们可以发挥GPU的力量,从而使我们的网站或应用表现的更为流畅。

在桌面端和移动端用CSS开启硬件加速

CSS animations, transforms 以及 transitions 不会自动开启GPU加速,而是由浏览器的缓慢的软件渲染引擎来执行。那我们怎样才可以切换到GPU模式呢,很多浏览器提供了某些触发的CSS规则。

现在,像Chrome, FireFox, Safari, IE9 和最新版本的Opera都支持硬件加速,当它们检测到页面中某个DOM元素应用了某些CSS规则时就会开启,最显著的特征的元素的3D变换。

例如:

.cube {-webkit-transform: translate3d(250px,250px,250px)
rotate3d(250px,250px,250px,-120deg)
scale3d(0.5, 0.5, 0.5);
}

可是在一些情况下,我们并不需要对元素应用3D变换的效果,那怎么办呢?这时候我们可以使用个小技巧“欺骗”浏览器来开启硬件加速。

虽然我们可能不想对元素应用3D变换,可我们一样可以开启3D引擎。例如我们可以用transform: translateZ(0); 来开启硬件加速 。

.cube {-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);
/* Other transform properties here */
}

在 Chrome and Safari中,当我们使用CSS transforms 或者 animations时可能会有页面闪烁的效果,下面的代码可以修复此情况:

.cube {-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-perspective: 1000;
-moz-perspective: 1000;
-ms-perspective: 1000;
perspective: 1000;
/* Other transform properties here */
}

在webkit内核的浏览器中,另一个行之有效的方法是

.cube {-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
/* Other transform properties here */
}

原生的移动端应用(Native mobile applications)总是可以很好的运用GPU,这是为什么它比网页应用(Web apps)表现更好的原因。硬件加速在移动端尤其有用,因为它可以有效的减少资源的利用(麦时注:移动端本身资源有限)。

总结

只对我们需要实现动画效果的元素应用以上方法,如果仅仅为了开启硬件加速而随便乱用,那是不明智的。

小心使用这些方法,如果通过你的测试,结果确是提高了性能,你才可以使用这些方法。使用GPU可能会导致严重的性能问题,因为它增加了内存的使用,而且它会减少移动端设备的电池寿命。

你有在项目中使用过这些方法吗?如果有,请分享你的精彩案例吧。

如何通过CSS开启硬件加速来提高网站性能相关推荐

  1. html5不支持硬件加速,CSS开启硬件加速来提高网站性能-HTML5综合

    CSS开启硬件加速来提高网站性能-HTML5综合 本文由 文梅画史 于 2016-1-28 5:09 发布在 HTML5综合 在桌面端和移动端用CSS开启硬件加速 CSS animations, tr ...

  2. css硬件加速,用CSS开启硬件加速提高网站性能

    你知道我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能,从而让渲染的性能更好吗? 现在大多数电脑的显卡都支持硬件加速,因此,我们可以利用 ...

  3. CSS开启硬件加速 hardware accelerated

    作者:孙志勇 微博 日期:2016年12月6日 一.时效性 所有信息都具有时效性.文章的价值,往往跟时间有很大关联.特别是技术类文章,请注意本文创建时间,如果本文过于久远,请读者酌情考量,莫要浪费时间 ...

  4. css 开启硬件加速的属性

    让浏览器知道你需要硬件加速,满足其一即可perspectivebackface-visibilitytransform:translateZ(x)opacityfiltersWill-change优点 ...

  5. CSS3开启硬件加速及利弊

    最近了解了一下用css3开启硬件加速的这个功能,不得不感叹浏览器这些东西太神奇了,要不是师兄提起,我根本就不知道居然有这种东西.所以还是要提高一下自己的信息来源渠道的. 巴拉巴拉了一下,下面我们正式来 ...

  6. CSS动画开启硬件加速

    (一)前言 在需要高频交互的css动画时候,我们就需要考虑使用CSS3 硬件加速. 首先,CSS3 硬件加速又叫做 GPU 加速,是利用 GPU 进行渲染, 减少 CPU 操作的一种优化方案.由于 G ...

  7. 关于修改虚拟机内存,和开启 硬件加速

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 昨晚回复 ...

  8. 腾讯视频开启硬件加速

    这篇文章主要说的是如何下载腾讯视频到电脑_腾讯视频开启硬件加速,希望可以帮助大家.腾讯视频开启硬件加速返回暂停重播播放x 当我们使用腾讯视频观看本地或在线影视时,开启硬件加速可以明显提高画面质量以及减 ...

  9. html代码硬件加速优化,详解CSS3开启硬件加速的使用和坑

    前言 最近在看在github上看iscroll的文档.虽然是英文的,但是为了装逼,没办法硬着头皮看完了,觉得作者写得不错(我有那么好耐心写那么长的文档就好了[捂脸]),然后为了更好地装逼,有看了一遍, ...

最新文章

  1. shiro整合oauth
  2. knn闽南语是什么意思_小丑竟是我自己是什么意思梗 小丑竟是我自己bgm是什么...
  3. Django 2.1.3 中间件使用
  4. python工程师待遇-Python工程师待遇如何 玩转Python看这里
  5. Java集合:数组的使用
  6. java代码里的JSON格式怎么写好看_谁会不爱让代码骚里骚气的VSCode扩展插件呢?...
  7. respberry pi3 上手随记
  8. 前端学习(774):查文档
  9. _declspec(naked) 使用
  10. PyTorch1.2.0版本来啦!居然还有全套视频!让你快速熟练掌握深度学习框架!
  11. 分布式团队中沟通引发的问题, itest 解决之道
  12. IntelliJ IDEA开发工具插件GsonFormat插件安装使用
  13. Mac环境下AndroidStudio关于 Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7的错误
  14. Python版的BS期权定价模型和希腊值分析
  15. 虚拟机无法通过dhcp获取到IP地址
  16. micropython stm32f107_stm32f107 USART3数据接收错误问题
  17. 计算机版音乐教学反思,音乐教学反思(通用3篇)
  18. 上海迪士尼乐园推出全新夜间演出“奇梦之光幻影秀”
  19. 一个漂亮的证明与作图:高斯的正十七边形
  20. 微信服务号开发----创建个性化菜单

热门文章

  1. mac php 超时,PHP---Mac上开启php错误提示
  2. hive选择mariadb还是mysql_Hive MariaDb的安装
  3. python知识点智能问答_基于知识图谱的智能问答机器人
  4. 20155330 2016-2017-2 《Java程序设计》第五周学习总结
  5. js创建节点,小试牛刀
  6. 在Eclipse中配置Tomcat7.0
  7. Javascript – 正则表达式
  8. 整数返回poj1005——I Think I Need a Houseboat
  9. PMP-PMBOK-培训(3)Introduction to Project Process Groups and Initiating a Project
  10. python个人收支管理系统相关题目_练手题:计算人均付费(SQLPython)