發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊(cè)
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
翻譯文章,原文地址:http://blog./increase-your-sites-performance-with-hardware-accelerated-css。
你知道我們可以在瀏覽器中用css開啟硬件加速,使GPU (Graphics Processing Unit) 發(fā)揮功能,從而提升性能嗎?
現(xiàn)在大多數(shù)電腦的顯卡都支持硬件加速。鑒于此,我們可以發(fā)揮GPU的力量,從而使我們的網(wǎng)站或應(yīng)用表現(xiàn)的更為流暢。
CSS animations, transforms 以及 transitions 不會(huì)自動(dòng)開啟GPU加速,而是由瀏覽器的緩慢的軟件渲染引擎來(lái)執(zhí)行。那我們?cè)鯓硬趴梢郧袚Q到GPU模式呢,很多瀏覽器提供了某些觸發(fā)的CSS規(guī)則。
現(xiàn)在,像Chrome, FireFox, Safari, IE9+和最新版本的Opera都支持硬件加速,當(dāng)它們檢測(cè)到頁(yè)面中某個(gè)DOM元素應(yīng)用了某些CSS規(guī)則時(shí)就會(huì)開啟,最顯著的特征的元素的3D變換。
例如:
.cube {
-webkit-transform: translate
3
d(
250px
,
)
rotate
-120
deg)
scale
0.5
);
}
可是在一些情況下,我們并不需要對(duì)元素應(yīng)用3D變換的效果,那怎么辦呢?這時(shí)候我們可以使用個(gè)小技巧“欺騙”瀏覽器來(lái)開啟硬件加速。
雖然我們可能不想對(duì)元素應(yīng)用3D變換,可我們一樣可以開啟3D引擎。例如我們可以用transform: translateZ(0); 來(lái)開啟硬件加速 。
-webkit-transform: translateZ(
0
-moz-transform: translateZ(
-ms-transform: translateZ(
-o-transform: translateZ(
transform: translateZ(
/* Other transform properties here */
在 Chrome and Safari中,當(dāng)我們使用CSS transforms 或者 animations時(shí)可能會(huì)有頁(yè)面閃爍的效果,下面的代碼可以修復(fù)此情況:
-webkit-backface-
visibility
:
hidden
;
-moz-backface-
-ms-backface-
backface-
-webkit-perspective:
1000
-moz-perspective:
-ms-perspective:
perspective:
在webkit內(nèi)核的瀏覽器中,另一個(gè)行之有效的方法是
-moz-transform: translate
-ms-transform: translate
transform: translate
原生的移動(dòng)端應(yīng)用(Native mobile applications)總是可以很好的運(yùn)用GPU,這是為什么它比網(wǎng)頁(yè)應(yīng)用(Web apps)表現(xiàn)更好的原因。硬件加速在移動(dòng)端尤其有用,因?yàn)樗梢杂行У臏p少資源的利用(麥時(shí)注:移動(dòng)端本身資源有限)。
只對(duì)我們需要實(shí)現(xiàn)動(dòng)畫效果的元素應(yīng)用以上方法,如果僅僅為了開啟硬件加速而隨便亂用,那是不明智的。
小心使用這些方法,如果通過(guò)你的測(cè)試,結(jié)果確是提高了性能,你才可以使用這些方法。使用GPU可能會(huì)導(dǎo)致嚴(yán)重的性能問(wèn)題,因?yàn)樗黾恿藘?nèi)存的使用,而且它會(huì)減少移動(dòng)端設(shè)備的電池壽命。
你有在項(xiàng)目中使用過(guò)這些方法嗎?如果有,請(qǐng)分享你的精彩案例吧。
如果您覺(jué)得這文章對(duì)您有幫助,可以打賞點(diǎn)錢給我,鼓勵(lì)我繼續(xù)寫博,我的支付寶
來(lái)自: 昵稱10504424 > 《工作》
0條評(píng)論
發(fā)表
請(qǐng)遵守用戶 評(píng)論公約
[css] 第118天 說(shuō)說(shuō)你對(duì)GPU的理解,舉例說(shuō)明哪些元素能觸發(fā)GPU硬件加速?
[css] 第118天 說(shuō)說(shuō)你對(duì)GPU的理解,舉例說(shuō)明哪些元素能觸發(fā)GPU硬件加速?前端面試每日3+1,以面試題來(lái)驅(qū)動(dòng)學(xué)習(xí),每天進(jìn)步一點(diǎn)!學(xué)習(xí)不打烊,充電加油只為遇到更好的自己,365天無(wú)節(jié)假日,每天早上5點(diǎn)純...
用IE9 Beta之前你應(yīng)該了解的9件事
第二,安裝IE9 Beta版后,系統(tǒng)中原有的IE7或IE8將被覆蓋,你將只有IE9可以使用,如果你因?yàn)楣ぷ髟虮仨氁褂门f版IE瀏覽器,那一定要慎...
IE9:九個(gè)不得不說(shuō)的秘密
IE9:九個(gè)不得不說(shuō)的秘密IE9:九個(gè)不得不說(shuō)的秘密。IE9已經(jīng)越來(lái)越近,我們?cè)鵀榇蠹医榻B過(guò)IE7、IE8和IE9的差別,如果這還不足以讓你對(duì)IE9...
關(guān)閉硬件加速 解決IE9假死現(xiàn)象
關(guān)閉硬件加速 解決IE9假死現(xiàn)象。IE9可通過(guò)硬件加速實(shí)現(xiàn)網(wǎng)頁(yè)渲染。但如果你的電腦配置有點(diǎn)舊,那么Vista和Win7的圖像加強(qiáng)效果就不好,打...
前端性能優(yōu)化(CSS動(dòng)畫篇)
比如一個(gè)圖層包含很多節(jié)點(diǎn),其中有個(gè)gif圖,gif圖的每一幀,都會(huì)重回整個(gè)圖層的其他節(jié)點(diǎn),然后生成最終的圖層位圖。所以這需要通過(guò)特殊的方式來(lái)強(qiáng)制gif圖屬于自己一個(gè)圖層(translateZ(0)或者translate...
前端性能優(yōu)化之更平滑的動(dòng)畫 | w3cTrain
前端性能優(yōu)化之更平滑的動(dòng)畫 | w3cTrain.執(zhí)行動(dòng)畫盡量使用CSS3 keyframes和 trainsition如果需要JS執(zhí)行動(dòng)畫,使用requestAnimationFrame...
瀏覽器極致性能調(diào)優(yōu)之——瀏覽器合成與渲染層優(yōu)化
瀏覽器極致性能調(diào)優(yōu)之——瀏覽器合成與渲染層優(yōu)化一個(gè) CSS 屬性引發(fā)的血案。構(gòu)建 DOM 樹:瀏覽器將 HTML 解析成樹形結(jié)構(gòu)的 DOM 樹,一般...
Javascript高性能動(dòng)畫與頁(yè)面渲染
m++) { // DEMO 版本 //movers[m].style.left = ((Math.sin(movers[m].offsetTop + timestamp/1000)+1) * 500) + ''px''...
GPU 加速是什么
GPU 加速是什么。7. 元素A有一個(gè) z-index 比自己小的元素B,且元素B是一個(gè)合成層(換句話說(shuō)就是該元素在復(fù)合層上面渲染),則元素A會(huì)提...
微信掃碼,在手機(jī)上查看選中內(nèi)容