摘要:這就節省了和電力使用持續調用即可可以使用清除動畫舉例預覽兼容性處理參考附錄原文發表在你也可以點擊這里瀏覽下我的其他文章歡迎和謝謝
JS 和 CSS 實現持續的動畫效果
逛論壇的時候看到一個問題, js 是怎么實現持續的動畫效果的? 第一時間想到的是定時器, 后來看到有同學提到了 requestAnimationFrame, 由于之前沒有對相關方法有所了解, 于是便去查了下, 順便也記錄了下 animation 的使用.
animation(CSS) 兼容性與屬性猛戳這里查看兼容性
animation-name: 動畫名稱
animation-duration: 動畫時長
animation-timing-function: 動畫執行方式
animation-delay: 動畫延遲執行時間
animation-iteration-count: 動畫執行次數
animation-direction: 是否反向執行動畫
animation-fill-mode: 動畫執行前后的樣式
實例jsfiddle預覽
.box { width: 200px; height: 200px; background-color: aqua; position: absolute; left: 0; top: 0; animation: test 3s linear 2s infinite; } @keyframes test { from { } to { width: 50px; height: 50px; background-color: red; opacity: 0.5; left: 500px; top: 500px; } }
requestAnimationFrame(JS) 兼容性與基本概念
猛戳這里查看兼容性
優勢:
瀏覽器可以優化并行的動畫動作,更合理的重新排列動作序列,并把能夠合并的動作放在一個渲染周期內完成,從而呈現出更流暢的動畫效果
一旦頁面不處于瀏覽器的當前標簽,就會自動停止刷新。這就節省了CPU、GPU和電力
使用:
持續調用 requestAnimFrame 即可舉例可以使用 cancelAnimationFrame 清除動畫
jsfiddle預覽
#anim { position: absolute; left: 0px; width: 150px; height: 150px; line-height: 150px; background: aqua; color: white; border-radius: 10px; padding: 1em; }
Click here to start animation
// 兼容性處理 window.requestAnimFrame = (function() { return ( window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback, element) { window.setTimeout(callback, 1000 / 60) } ) })() var elem = document.getElementById("anim") var startTime = undefined function render(time) { time = Date.now() if (startTime === undefined) { startTime = time } elem.style.left = ((time - startTime) / 10) % 300 + "px" elem.style.top = ((time - startTime) / 10) % 300 + "px" elem.style.borderRadius = ((time - startTime) / 10) % 300 + "px" elem.style.opacity = Math.floor((time - startTime / 100)) % 2 === 0 ? 1 : 0.3 } elem.onclick = function() { (function animloop() { render() requestAnimFrame(animloop, elem) })() }
參考
MDN
requestanimationframe
原文發表在github,你也可以點擊這里瀏覽下我的其他文章,歡迎star和follow,謝謝!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/94450.html
摘要:這就節省了和電力使用持續調用即可可以使用清除動畫舉例預覽兼容性處理參考附錄原文發表在你也可以點擊這里瀏覽下我的其他文章歡迎和謝謝 JS 和 CSS 實現持續的動畫效果 逛論壇的時候看到一個問題, js 是怎么實現持續的動畫效果的? 第一時間想到的是定時器, 后來看到有同學提到了 requestAnimationFrame, 由于之前沒有對相關方法有所了解, 于是便去查了下, 順便也記錄...
摘要:動畫運動算法線性勻速運動效果二次方的緩動三次方的緩動四次方的緩動五次方的緩動正弦曲線的緩動指數曲線的緩動圓形曲線的緩動指數衰減的正弦曲線緩動超過范圍的三次方緩動指數衰減的反彈緩動。 requestAnimFrame兼容 window.requestAnimFrame = (function (callback,time) { return window.requestAnima...
摘要:使用實現一個持續的動畫效果最開始的思路是用定時器實現,最后沒有想的太完整,面試官給出的答案是用。參考鏈接封裝一個函數,參數是定時器的時間,執行回調函數。規范規定,每個模塊內部,變量代表當前模塊。 1、使用css實現一個持續的動畫效果———————————————————————————————————————————————————————— animation:mymove 5s i...
閱讀 7652·2023-04-25 14:36
閱讀 1757·2021-11-22 09:34
閱讀 2152·2019-08-30 15:55
閱讀 3148·2019-08-30 11:19
閱讀 1308·2019-08-29 15:17
閱讀 551·2019-08-29 12:47
閱讀 2994·2019-08-26 13:38
閱讀 2627·2019-08-26 11:00