1. 程式人生 > >怎麼解決動畫卡頓

怎麼解決動畫卡頓

總結解決CSS3動畫卡頓方案

1.儘量使用transform做動畫,避免使用height,width,margin,padding等;

原因是:
根據定義,CSS 的transform屬性不會更改元素或它周圍的元素的佈局。transform屬性會對元素的整體產生影響,它會對整個元素進行縮放、旋轉、移動處理。

這對瀏覽器來說是個好訊息 !瀏覽器只需要一次生成這個元素的點陣圖,並在動畫開始的時候將它提交給GPU去處理 。之後,瀏覽器不需要再做任何佈局、 繪製以及提交點陣圖的操作。從而,瀏覽器可以充分利用 GPU 的特長去快速地將點陣圖繪製在不同的位置、執行旋轉或縮放處理。

對於高度較慢的原因:


在動畫的每一幀中,瀏覽器都要執行佈局、 繪製、 以及將新的點陣圖提交給 GPU。我們知道,將點陣圖載入到 GPU 的記憶體中是一個相對較慢的操作。

瀏覽器需要做大量工作的原因在於每一幀中元素的內容都在不斷改變。改變一個元素的高度可能導致需要同步改變它的子元素的大小,所以瀏覽器必須重新計算佈局。佈局完成後,主執行緒又必須重新生成該元素的點陣圖。

2.要求較高時,可以開啟瀏覽器開啟GPU硬體加速。

比如:
一、現在,像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 */
}

相關推薦

怎麼解決動畫

總結解決CSS3動畫卡頓方案 1.儘量使用transform做動畫,避免使用height,width,margin,padding等; 原因是: 根據定義,CSS 的transform屬性不會更改元素或它周圍的元素的佈局。transform屬性會對元素

React-Native Navigator 過渡動畫解決方案

在RN0.44版本之前,路由導航跳轉幾乎是使用的是Navigator元件,在0.44版本以後就不推薦使用了,官方推薦的是react-navigation,當然還是可以在廢棄的庫中找到: import { Navigator } from 'react-native-deprecated-custom-comp

CSS3 動畫解決方案

為什麼會卡頓? 有一個前提必須要提,前端開發者們都知道,瀏覽器是單執行緒執行的。但是我們要明確以下幾個概念:單執行緒,主執行緒和合成執行緒。 雖然說瀏覽器執行js是單執行緒執行(注意,是執行,並不是說瀏覽器只有1個執行緒,而是執行時,runing),但實際上瀏覽器的2個重要的執行執行緒,

UX2內核瀏覽加速技術綱要[帶你解決WebView]

加載順序 簡潔 負責 images mage 工作 發布 攔截 聯系 UX2內核是本人負責主要開發的瀏覽服務項目,其主要目的是為開發者提供一個簡單好用、輕便的網絡瀏覽服務。UX2內核的安卓端是基於WebView進行深度優化的,同時歡迎大家使用這個內核用於app頁面或瀏覽器,

解決webstorm問題

筆記本 卡頓 安裝 strong xmx xms str 重啟 最大值 webstorm強大功能不再介紹,相信用的各位都有感觸,以前在臺式機上運行沒有發現任何不爽,但是自從換了筆記本辦公,寫代碼有的時候總感覺慢半拍,原因就是因為它太大太重,吃內存。 具體辦法: 找到WebS

android 動畫分析工具

android 動畫卡頓分析工具     Android應用效能優化之分析工具   上一次記錄瞭解決過度繪製的過程,這一次,想先弄清個概念性的東西,就是如何判斷順不順暢?   這東西其實最初我自己也覺得有點廢話,用起來會卡就明顯是不順暢咯。   但這東西就跟我很想吐槽很

結合Bitmap三級快取自己做個ImageLoader 解決UI問題

三級快取 前言 三級快取 記憶體快取 LRU演算法 輔助類 磁碟快取 輔助類 檔案更新邏輯 圖片非同步載入器 優化UI卡頓

移動swiper中動畫,通過requestAnimationFrame寫向下的動畫

當手機網頁使用swiper的時候,在css中寫入動畫的時候有些時候瀏覽頁面會進行卡頓,這個時候你就需要手寫動畫了,以下為參考的一些的案例,大家可以用來參考 setT(); var dataSet = 0, dataStop = 0.35, dataSetT = 7; fun

Android屬性動畫的優化

在開發時,在聊天室內用到屬性動畫,時間久了卡頓,先看一下效果圖: 禮物動畫是 SVGA 動畫和屬性動畫配合使用,才達到這樣的效果;這是在聊天室內,會不停的刷這種禮物,在測試時,刷到70個左右,出現明顯的卡頓現象; 為了解決卡頓的問題,去搜了挺多,最終找到了解決的方法; 先看我之前的

解決IDEA問題及相關基本配置

一、IDEA太卡頓,設定使用IDEA的記憶體在IDEA的安裝目錄下的bin目錄下:開啟設定:將idea.exe.vmoptions檔案內由-server-Xms128m-Xmx512m-XX:MaxPermSize=250m-XX:ReservedCodeCacheSize=

C# 如何解決程式的問題(多執行緒初步學習)

在編寫程式的時候,有時候難免會出現後臺執行時間過長的問題,這個時候就要考慮多執行緒的操作了。 正文 不帶引數的多執行緒實現 第一步 建立控制檯應用 第二步 引用System.Threading.Thread using System.Threading;

MAC下解決eclipse或者執行慢的問題

提示:假設你已經裝了固態硬碟,並且有至少8Gb的記憶體。如果沒有的話,帶來的效能提升可能不大。 1.eclipse中載入的SDK數量過多會導致程式執行緩慢,解決方法刪除plaforms下面用不到的SDK,最好只保留兩個,最新的SDK; 2.eclipse程式圖示上右鍵,顯示

android activity剛開啟時內部動畫問題

最近遇到這個問題,一個activity中有一個imageview的旋轉動畫,當activity剛開啟時,前幾秒這個旋轉的動畫沒有轉動的過程,過了0.幾秒以後直接卡到某個未知接著轉.到處搜尋都是說activity出現時的過渡動畫的問題,感覺人類語言不足以精簡的表達

Mac/MacBookPro解決執行問題(非配置問題)

Mac在升級後可能會出現莫名其妙的卡頓,執行緩慢等問題,如果遇到這種問題可以嘗試以下幾種方法恢復下: 一、以安全模式啟動: 1、重新啟動Mac,然後立即按住Shift鍵。顯示屏上將出現Apple標誌。

7個小技巧,解決eclipse問題

eclipse作為開發工具,每天都要使用,你肯定遇到過eclipse卡到想哭的時刻,嚴重影響開發效率啊!如果記憶體條不要錢,那就加記憶體吧!一個不夠加兩個!當然這都是玩笑話,如果不花錢也能解決問題,希望下面幾個小tips會有幫助!1、去掉自動構建專案,改為手動在eclipse

iOS開發-解決頁面小技巧(很常用)

1).UIImageView儘量設定為不透明 opque儘量設定為YES當UIImageView的opque設定為YES的時候其alpha的屬性就會無效,UIImageView的半透明取決於其圖片半透明或者UIImageView本身的背景色合成的圖層view是半透明的。 如果圖片全部不是半透明就不會觸發圖層

Idea(二) 解決IDEA問題及相關基本配置(轉)

一、IDEA太卡頓,設定使用IDEA的記憶體在IDEA的安裝目錄下的bin目錄下:開啟設定:將idea.exe.vmoptions檔案內由-server-Xms128m-Xmx512m-XX:MaxPermSize=250m-XX:ReservedCodeCacheSize=

QT學習一之畫板製作(解決繪畫)

    hello,大家好。    本人學習了一段時間的Qt,今天在公司電視大屏有個畫板工具功能,靈機一動製作一個簡易的畫板程式。    本文主要介紹如何採用QWidget,QPainter製作畫板。    畫板功能:全屏無邊框畫板,支援手繪,右鍵(偷懶= -0- =)擦除。

Eclipse的設定、調優、使用(解決啟動等問題)

eclipse調優一般在不對eclipse進行相關設定的時候,使用eclipse總是會覺得啟動好慢,用起來好卡,其實只要對eclipse的相關引數進行一些配置,就會有很大的改善。 加快啟動速度1.在eclipse啟動的時候,它總是會搜尋讓其執行的jre,往往就是這個搜尋過

Windows資源管理器打開文件夾原因及解決辦法

打開 監視器 啟用 div xpl 通過 windows 資源 解決方法 全新安裝的 Win8 打開文件夾居然會卡頓,特別是打開EXE程序比較多的文件夾,通過資源監視器查看,幕後兇手就是 Windows Defender 殺毒軟件。 MSE是微軟提供防毒功能,而Window