您好,登錄后才能下訂單哦!
一、動畫的實現方式
在網頁中,實現動畫無外乎兩種方式:
CSS3方式
CSS3的方式下,開發者一般在CSS中定義一些包含CSS3transition語法的規則。在某些特定情況下,讓這些規則發生作用,于是瀏覽器會將這些規則應用于指定的DOM元素上,產生動畫的效果。這種方式效率比腳本方式高,因為瀏覽器原生支持,省去了JavaScript的解釋執行負擔,有的瀏覽器甚至可以充分利用CPU加速的優勢,進一步增強動畫渲染的性能。
不過CSS3也有不少缺點:
首先,CSS3transition對一個動畫規則的定義是基于時間和速度曲線的規則。就是CSS3的動畫過程要描述成“在什么時間范圍內,以什么樣的運動節奏完成動畫”,這可能不利于動畫的流暢,因為動畫是可能被中途打斷的。
因為CSS3transition總是一閃而過,捕捉不到中間狀態,只能一遍一遍用肉眼去檢查動畫效果,這給開發者帶來了很大的痛苦。
二、 ReactCSSTransition規則
Transition并不能代替CSS,相反,它離不開CSS,其扮演的角色是讓React組件在生命周期的特定階段使用不同的CSS規則,而連接React組件和CSS需要遵守一些規則。
三、React-Motion動畫庫
React-Motion使用的是腳本方式。
react-motion中大量的使用了“以函數為子組件”的模式,react-motion提供的組件,都預期接受一個函數作為子組件。舉例如下:
Motion組件的defaultStyle屬性指定了一個初始值,style屬性指定了目標值,期間不斷調用作為子組件的函數,完成動畫過程。
很顯然,motion并不直接參與動畫的繪制,它只是提供參數。具體的繪制過程,由作為子組件的繪制函數來完成,很顯然這種“以函數為子組件”的模式帶來了很大的靈活度。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。