天天看點

window.requestAnimationFrame

window.requestAnimationFrame()

 告訴浏覽器——你希望執行一個動畫,并且要求浏覽器在下次重繪之前調用指定的回調函數更新動畫。該方法需要傳入一個回調函數作為參數,該回調函數會在浏覽器下一次重繪之前執行

注意:若你想在浏覽器下次重繪之前繼續更新下一幀動畫,那麼回調函數自身必須再次調用

window.requestAnimationFrame()

當你準備更新動畫時你應該調用此方法。這将使浏覽器在下一次重繪之前調用你傳入給該方法的動畫函數(即你的回調函數)。回調函數執行次數通常是每秒60次,但在大多數遵循W3C建議的浏覽器中,回調函數執行次數通常與浏覽器螢幕重新整理次數相比對。為了提高性能和電池壽命,是以在大多數浏覽器裡,當

requestAnimationFrame()

 運作在背景标簽頁或者隐藏的

<iframe>

 裡時,

requestAnimationFrame()

 會被暫停調用以提升性能和電池壽命。

回調函數會被傳入

DOMHighResTimeStamp

參數,

DOMHighResTimeStamp

訓示目前被 

requestAnimationFrame()

 排序的回調函數被觸發的時間。在同一個幀中的多個回調函數,它們每一個都會接受到一個相同的時間戳,即使在計算上一個回調函數的工作負載期間已經消耗了一些時間。該時間戳是一個十進制數,機關毫秒,最小精度為1ms(1000μs)。

請確定總是使用第一個參數(或其它獲得目前時間的方法)計算每次調用之間的時間間隔,否則動畫在高重新整理率的螢幕中會運作得更快。請參考下面例子的做法。

文法

window.requestAnimationFrame(callback);
      

參數

傳回值

繼續閱讀