摘要:入門(mén)在網(wǎng)頁(yè)中使用動(dòng)畫(huà)提供了更好的用戶(hù)體驗(yàn),例如抽屜式菜單。目前為止,動(dòng)畫(huà)可以通過(guò),或者其他的動(dòng)畫(huà)庫(kù),現(xiàn)在我們可以使用編寫(xiě)更加自由的動(dòng)畫(huà),那就是。創(chuàng)建動(dòng)畫(huà)我們分別用和寫(xiě)個(gè)簡(jiǎn)單的用來(lái)展示的特性。
Web Animation Api 入門(mén)
在網(wǎng)頁(yè)中使用動(dòng)畫(huà)提供了更好的用戶(hù)體驗(yàn),例如抽屜式菜單。
目前為止,web動(dòng)畫(huà)可以通過(guò)css3 transitions,css3 keyframes或者其他的動(dòng)畫(huà)庫(kù)(animate.css、Velocity、tween),現(xiàn)在我們可以使用js編寫(xiě)更加自由的web動(dòng)畫(huà),那就是web animation。
創(chuàng)建動(dòng)畫(huà)我們分別用css3和web animation api寫(xiě)個(gè)簡(jiǎn)單的demo用來(lái)展示web animation的特性。
Demo
css方法
var square = document.getElementById("square"); square.addEventListener("click", function() { square.className += " animate"; }); .animate { animation-name: move-and-change-color; animation-duration: 0.4s; animation-fill-mode: forwards; } @keyframes move-and-change-color { 0% { transform: translateX(0); } 80% { transform: translateX(100px); background-color: #2196F3; } 100% { transform: translateX(100px); background-color: #EF5350; } }
Web Animation方法
var moveAndChangeColor = [ { transform: "translateX(0)", background: "#2196F3" // blue }, { offset: 0.8, transform: "translateX(100px)", background: "#2196F3" // blue }, { transform: "translateX(100px)", background: "#EF5350" // red } ]; //數(shù)組中的每個(gè)對(duì)象代表一個(gè)動(dòng)畫(huà)狀態(tài) var circle = document.getElementById("circle"); circle.addEventListener("click", function() { circle.animate(moveAndChangeColor, { duration: 400, fill: "forwards" }); });控制動(dòng)畫(huà)
通過(guò)上面的例子可以簡(jiǎn)單的對(duì)比出,css3方法局限性較大,并不適合復(fù)雜的動(dòng)畫(huà),也不易于控制,而Web Animation Api適合復(fù)雜動(dòng)畫(huà),并且易于控制。
var animation = elem.animate(transitions, options);
Web Animation Api 提供如下方法:
pause() – 暫停動(dòng)畫(huà)
play() – 播放動(dòng)畫(huà)
reverse() – 反向播放
finish() – 立即結(jié)束動(dòng)畫(huà)
cancel() – 取消動(dòng)畫(huà)并回到初始狀態(tài)
具體使用方法請(qǐng)看Demo
屬性和事件監(jiān)聽(tīng)動(dòng)畫(huà)運(yùn)行的過(guò)程中會(huì)通過(guò)animate返回動(dòng)畫(huà)屬性對(duì)象,比如動(dòng)畫(huà)播放速率-playbackrate,移步Demo
此外,我們還可以監(jiān)聽(tīng)finish和cancel事件做點(diǎn)其他有意義的事情
spinnerAnimation.addEventListener("finish", function() { // Animation has completed or .finish() has been called. doSomething(); }); spinnerAnimation.addEventListener("cancel", function() { // Animation has been canceled. doSomething(); });兼容性
大部分chrome、firefox都支持Web Animation Api,其他的例如ios、安卓都不支持,詳情請(qǐng)查看Caniuse
對(duì)于不支持的可以是用polyfill
相關(guān)資料Using the Web Animations API
Animatelo
Let’s talk about the Web Animations API
原文地址Getting Started With The JavaScript Web Animation API
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83099.html
摘要:入門(mén)在網(wǎng)頁(yè)中使用動(dòng)畫(huà)提供了更好的用戶(hù)體驗(yàn),例如抽屜式菜單。目前為止,動(dòng)畫(huà)可以通過(guò),或者其他的動(dòng)畫(huà)庫(kù),現(xiàn)在我們可以使用編寫(xiě)更加自由的動(dòng)畫(huà),那就是。創(chuàng)建動(dòng)畫(huà)我們分別用和寫(xiě)個(gè)簡(jiǎn)單的用來(lái)展示的特性。 Web Animation Api 入門(mén) 在網(wǎng)頁(yè)中使用動(dòng)畫(huà)提供了更好的用戶(hù)體驗(yàn),例如抽屜式菜單。 目前為止,web動(dòng)畫(huà)可以通過(guò)css3 transitions,css3 keyframes或者其...
摘要:前端日?qǐng)?bào)精選如何在非項(xiàng)目中使用知乎專(zhuān)欄編碼規(guī)范最常被遺忘的性能優(yōu)化瀏覽器緩存?zhèn)€人文章譯統(tǒng)一樣式語(yǔ)言掘金新的開(kāi)發(fā)者提及最多的個(gè)視頻眾成翻譯中文第期在中使用譯統(tǒng)一樣式語(yǔ)言掘金前端現(xiàn)狀答題救不了前端新人相學(xué)長(zhǎng)懟前端歲以 2017-06-29 前端日?qǐng)?bào) 精選 如何在非 React 項(xiàng)目中使用 Redux - 知乎專(zhuān)欄Javascript編碼規(guī)范 - Clearlove - SegmentFau...
摘要:簡(jiǎn)而言之,它將對(duì)動(dòng)畫(huà)中變化的屬性數(shù)值做插值運(yùn)算并且刷新視圖。注意我們所建立的的是的一個(gè)實(shí)例。最后我們使用,表示這個(gè)組件是可動(dòng)畫(huà)組件。一直不停動(dòng)動(dòng)畫(huà)序列的方法可以傳一個(gè)回調(diào)函數(shù),在動(dòng)畫(huà)全部執(zhí)行完時(shí)觸發(fā)。 翻譯自 React-native Animated API Basic Example 翻譯過(guò)程中有刪改 簡(jiǎn)介 本文是探索 react-native 中實(shí)現(xiàn)的的 Animated AP...
摘要:前端日?qǐng)?bào)精選你可能不知道的前端知識(shí)點(diǎn)譯在服務(wù)端渲染的實(shí)現(xiàn)掘金小前端創(chuàng)建或文件并瀏覽器導(dǎo)出下載張?chǎng)涡聆慰臻g鑫生活代理服務(wù)器淺析知乎專(zhuān)欄快速打造簡(jiǎn)易高效的配置掘金中文譯組件解耦之道楓上霧棋的日志第期什么樣的工程師才能算老司機(jī) 2017-07-05 前端日?qǐng)?bào) 精選 你可能不知道的前端知識(shí)點(diǎn)[譯] React 在服務(wù)端渲染的實(shí)現(xiàn) - 掘金小tip:JS前端創(chuàng)建html或json文件并瀏覽器導(dǎo)出...
摘要:前端還有一個(gè)很重要的事就是設(shè)計(jì)。,中文版譯名為認(rèn)知與設(shè)計(jì)理解設(shè)計(jì)準(zhǔn)則。實(shí)驗(yàn)室是布拉德弗羅斯特依照這個(gè)設(shè)計(jì)系統(tǒng)所建立的一套工具,可以前往的來(lái)試試。中文翻譯為流暢設(shè)計(jì)體系,是微軟于年開(kāi)發(fā)的設(shè)計(jì)語(yǔ)言。微軟于年月日的開(kāi)發(fā)者大會(huì)上公開(kāi)了該設(shè)計(jì)體系。 showImg(https://segmentfault.com/img/bVbkgFI?w=1142&h=640); 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳Gi...
閱讀 1342·2023-04-26 00:10
閱讀 2437·2021-09-22 15:38
閱讀 3802·2021-09-22 15:13
閱讀 3518·2019-08-30 13:11
閱讀 655·2019-08-30 11:01
閱讀 3040·2019-08-29 14:20
閱讀 3220·2019-08-29 13:27
閱讀 1734·2019-08-29 11:33