av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

CSS3動畫的硬件加速的問題。。

瀏覽:159日期:2023-07-05 15:09:59

問題描述

查資料好像是這么說的:CSS3硬件加速觸發時候,會創建一個新的層,其中的圖像會用GPU進行渲染,來提高性能。

這樣有了一個問題呀,最近寫東西時候,發現如果子級元素觸發了硬件加速渲染的動畫,如果父級也是硬件渲染的,就算父級沒有動畫效果,也會在硬件渲染層里觸發父級的重繪。

下面是我簡單寫了一個示例,父級.p用transform屬性來調整了下位置,子元素a標簽在hover時觸發了opacity的過渡動畫效果的話,會發現父級元素也被重繪了。

用谷歌的layer border可以看到:CSS3動畫的硬件加速的問題。。

父級也在層里面,而且用paint flashing也會看到,父級也會被重繪,而這根本是沒必要的。。我的實際情況中,父級元素內還有個圖片,如果圖片被重繪的話就會變模糊一段時間。。。

如果取消了父級的transform屬性,就不會觸發父級的重繪了。CSS3動畫的硬件加速的問題。。

該怎么辦才能使a標簽觸發動畫時,不讓父元素也跟著重新渲染呢?

想過更改父元素定位的方法,不用transform了。。。但是貌似還要改dom結構啊。。有沒有什么設置可以讓某個元素禁止使用硬件加速呀。。。

<!DOCTYPE html><html><head> <meta charset='UTF-8'> <title>test2</title> <style>*{ margin: 0; padding: 0; border: none;}body,html{ width: 100%; height: 100%;}.p{ width: 300px; height: 180px; background-color: #888; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);}.p a{ position: absolute; width: 40%; height: 80%; top: 10%; opacity: 0; transition: opacity 1s; background-color: #333;}.p a:hover{ opacity: 1;}.prev{ left: 0;}.next{ right: 0;} </style></head><body><p class='p'> <a class='prev'></a> <a class='next'></a></p></body></html>

問題解答

回答1:

可能概念沒有描述清楚。chromium/webkit硬件加速中

transform case需要3D變換才會創建新的合成層 也就是例子中translate3d(-50%,-50%,0)即可。通常啟用使用translateZ(0);

opacity和過渡/動畫case 需要動畫執行的過程中才會創建合成層,也就是過渡或動畫沒有開始或結束后元素還會回到之前的狀態,這也解釋了例子中過渡開始和結束父極元素會重繪,過程:移除元素(這里元素是渲染內部表示RenderObject/Layer,下同)->創建合成層,過渡動畫,刪除合成層->移回元素;

附:這里移除父極的transform就好了可能是因為transform:translate破壞了父極的渲染層,創建了新渲染層但又未達到創建合成層(使用硬件加速)的條件,且使得其與其子元素p處于同一個渲染層(一般情況),子元素的離開和加入使其重繪。(這個結論的來源:使子元素啟用硬件加速,完全脫離父元素,如給其加tranform 3d變換 translateZ(0);)

標簽: CSS
相關文章:
主站蜘蛛池模板: 99久久精品免费看国产四区 | 一区二区三区四区在线播放 | 亚洲淫视频 | 污视频免费在线观看 | 羞羞视频在线网站观看 | xx视频在线观看 | 国产激情在线 | 国产高清在线观看 | 污书屋 | 欧美精品网站 | 午夜影院视频 | 亚洲精品久久久久中文字幕二区 | 天天操天天操 | 国产精品1区2区3区 国产在线观看一区 | 日韩一区二区在线视频 | 欧美一区二区在线观看 | 亚洲精品www | 国产不卡一 | 黄色网址免费看 | www久久国产 | 色噜噜亚洲男人的天堂 | 亚洲一区 中文字幕 | 一区二区不卡 | 久久久久久久久久久久久9999 | 精品视频在线播放 | 亚洲性人人天天夜夜摸 | 三级av免费| 在线中文字幕第一页 | 亚洲精品久久区二区三区蜜桃臀 | 久久人体| 亚洲成人av| 美日韩一区二区 | 亚洲国产一区二区三区在线观看 | 精品福利一区二区三区 | 久久久久久999 | 97免费视频在线观看 | 欧美一区二区三区在线观看视频 | 日韩久久久久 | 国产99精品 | 色橹橹欧美在线观看视频高清 | 国产精品日产欧美久久久久 |