50行程式碼實現的高效能動畫定時器 raf-interval
寫在前面
raf-interval 是基於 window.requestAnimationFrame() 封裝的定時器。
window.requestAnimationFrame() 方法告訴瀏覽器您希望執行動畫,並請求瀏覽器呼叫指定的函式在下一次重繪之前更新動畫。該方法將在重繪之前呼叫的回撥作為引數。所以
如果您想在下一個重繪時為另一個框架設定動畫,您的回撥例程必須呼叫 requestAnimationFrame()。
如果你想做逐幀動畫的時候,你應該用這個方法。這就要求你的動畫函式執行會先於瀏覽器重繪動作。通常來說,被呼叫的頻率是每秒60次,但是一般會遵循W3C標準規定的頻率。如果是後臺標籤頁面,重繪頻率則會大大降低。
通過 raf-interval 我們可以把抽象的物件的自身的迴圈邏輯通過 setRafInterval 書寫在自身的程式碼裡,但是卻執行在唯一的 ticker,這樣邏輯不會被拆得支離破碎,更好維護方便擴充套件。
API
- setRafInterval 開啟定時器
- clearRafInterval 清除定時器
和setInterval 和 clearInterval 用法一致!超級簡便
特性
- 和 setInterval clearInterval 一樣的使用方式
- 當用戶切到其他tab自動停止迴圈,低功耗,更省電
- 簡單的API就能製作高效能絲般順滑的的動畫效果
- 智慧地停止的開啟迴圈
使用
沒有 raf-interval 之前:
var i = 0
var interval = setInterval(function() {
console.log(i++)
if (i > 6) {
clearInterval(interval)
}
},1000)
有了 raf-interval 之後:
var i = 0
var rafInterval = setRafInterval(function() {
console.log(i++)
if (i > 6) {
clearRafInterval(rafInterval)
}
},1000)
安裝
$ npm install raf-interval
或者從 CDN 拉取:
License
This content is released under the MIT License.
相關推薦
50行程式碼實現的高效能動畫定時器 raf-interval
寫在前面 raf-interval 是基於 window.requestAnimationFrame() 封裝的定時器。 window.requestAnimationFrame() 方法告訴瀏覽器您希望執行動畫,並請求瀏覽器呼叫指定的函式在下一次重繪之前更新動畫。該方法將在重繪之前呼叫的回撥作為引數。所以
50行程式碼實現3D模擬真實撒金幣動效
我們將會用50行不到的程式碼來實現一個3D模擬撒金幣動效。你只需要一點Egret基礎就能夠快速上手,如果你不瞭解Egret,這裡有一篇3分鐘建立hello world來帶你快速入門。 實現效果 原始碼和線上demo 完整的工程請見:github.com/wildfirecod…
50行程式碼實現人臉識別檢測
現在的人臉識別技術已經得到了非常廣泛的應用,支付領域、身份驗證、美顏相機裡都有它的應用。下面小編給大家帶來了基於50行Python程式碼實現人臉檢測功能,一起看看吧。 現在的人臉識別技術已經得到了非常廣泛的應用,支付領域、身份驗證、美顏相機裡都有它的應用。用iPhone的同學們應該對下面的功能比
不到50行程式碼實現一個能對請求併發數做限制的通用RequestDecorator
使用場景 在開發中,我們可能會遇到一些對非同步請求數做併發量限制的場景,比如說微信小程式的request併發最多為5個,又或者我們需要做一些批量處理的工作,可是我們又不想同時對伺服器發出太多請求(可能會對伺服器造成比較大的壓力)。這個時候我們就可以對請求併發數進行限制,並且使用排隊機制讓請求有序的傳送出去。
50行程式碼實現簡單的網站伺服器 (一)
歡迎點選「演算法與程式設計之美」↑關注我們!本文首發於微信公眾號:"演算法與程式設計之美",歡迎關注,及時瞭解更多此係列部落格。本系列教程將和您一起探討如何利用Java語言一步一步實現自己的web伺服器
50行程式碼實現人臉檢測
http://mp.weixin.qq.com/s/oDMFoPh6wLYFnTP2rG2AuA 現在的人臉識別技術已經得到了非常廣泛的應用,支付領域、身份驗證、美顏相機裡都有它的應用。用iPhone的同學們應該對下面
50行程式碼實現對抗生成網路GAN
轉自大牛Dev Nag。Dev Nag是前谷歌高階工程師、AI 初創公司 Wavefront 創始人兼 CTO,本文介紹了他是如何用不到五十行程式碼,在 PyTorch 平臺上完成對 GAN 的訓練。 In 2014, Ian Goodfellow and his colleagues at the U
HTML5遊戲實戰 1 50行程式碼實現正面跑酷遊戲
前段時間看到一個“熊來了”的HTML5跑酷遊戲,它是一個典型的正面2D跑酷遊戲,這裡借用它來介紹一下用Gamebuilder+CanTK開發正面跑酷遊戲的基本方法。CanTK(Canvas ToolKit)是一個開源的遊戲引擎和APP框架,是開發HTML5遊戲或者APP的利器,
100行程式碼實現最簡單的基於FFMPEG+SDL的視訊播放器(SDL1.x)
=====================================================最簡單的基於FFmpeg的視訊播放器系列文章列表:=====================================================簡介FFMPEG
50 行程式碼,實現中英文翻譯
50 行程式碼,實現中英文翻譯 閱讀文字大概需要 4.2 分鐘。 現在的時代,越來越看重英語能力。如果你懂得英語,你會接觸到更大的世界,你會發現更多的資訊。尤其是對於程式設計師來說,好的程式設計資料都是來自英文文件。那些國內的翻譯的版本,有很多內容跟原版相差的太多,甚至牛頭不對馬嘴。
[tensorflow應用之路]10行程式碼實現一個完整的SVM分類器
SVM是一種常用的機器學習分類器模型,其原理為最大化類間隔(被稱為支援向量),來達到分類的目的。它是一種有監督的模型。 SVM原理簡述 SVM通過預測值y′=wx+by′=wx+b與真實值yy之間的差值實現最大間隔分類。即 wx+b⩾1,y=1wx+b
最簡單的區塊鏈實現,不到50行程式碼!(一)
什麼是區塊鏈(Blockchain)? 一個電子記賬本,以比特幣和其他密碼加密貨幣進行的交易公開地、按照日期順序記錄其中。 總的來說,它是一個公開的資料庫,新的資料儲存在一個稱為區塊的容器中,並且附加到一個“不可變”的鏈條(即區塊鏈)上,鏈條上還有以前附加的資料。這裡的“不
XCode版【100行程式碼實現最簡單的基於FFMPEG+SDL的視訊播放器】
【來自】 1.新建XCode工程後,發現即使安裝了SDL和FFMPEG也編譯不成功,需要修改各種環境。經過我的不懈努力加百穀啥的...貼個能編譯通過的過程出來。謹記! 2.首先需要編譯好ffmpeg原始碼,然後還需要安裝SDL(ffmpeg直接編譯,SDL我是通過brew安
50行程式碼教你打造一個公眾號文章採集器
Alfred的女票是一枚資料科學領域的新媒體運營官(是的,Alfred是一名程式設計師,Alfr
頁面實現多個定時器(計時器)時選用NSTimer還是GCD?(幹貨不濕)
self. spa inf ima efault baidu 設定 common ref 定時器在我們每個人做的iOS項目裏面必不可少,如登錄頁面倒計時、支付期限倒計時等等,一般來說使用NSTimer創建定時器: + (NSTimer *)timerWithTimeInte
python 三行程式碼實現快速排序
python 三行程式碼實現快速排序 最近在看 python cookbook , 裡面的例子很精彩,這裡就幫過來,做個備忘錄 主要利用了行數的遞迴呼叫和Python的切片特性,解釋一下每行程式碼的含義: 第1行: #coding:utf-8 指定utf
分享:50行程式碼監聽watch小程式的globalData
監聽方法: 1 // 在任何元件、頁面,例如頁面 2 3 const app = getApp( ); 4 5 Page({ 6 7 onLoad: function( ) { 8 app.watch$('role', ( val, old ) => {
pytorch 50行程式碼搭建ResNet-34
#------------------------------用50行程式碼搭建ResNet------------------------------------------- from torch import nn import torch as t from torch.nn import
30行程式碼實現Javascript中的MVC
從09年左右開始,MVC逐漸在前端領域大放異彩,並終於在剛剛過去的2015年隨著React Native的推出而迎來大爆發:AngularJS、EmberJS、Backbone、ReactJS、RiotJS、VueJS…… 一連串的名字走馬觀花式的出現和更迭,它們中一些已經漸漸淡出了大家的視
100行程式碼實現一個vue分頁元件
今天用vue來實現一個分頁元件,總體來說,vue實現比較簡單,樣式部分模仿了elementUI。所有程式碼的原始碼可以再github上下載的到:下載地址 先來看一下實現效果: 點選檢視效果 整體思路 我們先看一下使用到的檔案的目錄: 我們在 pageComponentsTe