您好,登錄后才能下訂單哦!
這篇“微信小程序如何創建一個動畫實例”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“微信小程序如何創建一個動畫實例”,給大家總結了以下內容,具有一定借鑒價值,內容詳細步驟清晰,細節處理妥當,希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內容吧。
創建一個動畫實例animation。調用實例的方法來描述動畫。最后通過動畫實例的export
方法導出動畫數據傳遞給組件的animation
屬性。
注意:export
方法每次調用后會清掉之前的動畫操作
OBJECT參數說明:
參數 | 類型 | 必填 | 默認值 | 說明 |
---|---|---|---|---|
duration | Integer | 否 | 400 | 動畫持續時間,單位ms |
timingFunction | String | 否 | "linear" | 定義動畫的效果 |
delay | Integer | 否 | 0 | 動畫延遲時間,單位 ms |
transformOrigin | String | 否 | "50% 50% 0" | 設置transform-origin |
timingFunction 有效值:
值 | 說明 |
---|---|
linear | 動畫從頭到尾的速度是相同的 |
ease | 動畫以低速開始,然后加快,在結束前變慢 |
ease-in | 動畫以低速開始 |
ease-in-out | 動畫以低速開始和結束 |
ease-out | 動畫以低速結束 |
step-start | 動畫第一幀就跳至結束狀態直到結束 |
step-end | 動畫一直保持開始狀態,最后一幀跳到結束狀態 |
var animation = wx.createAnimation({ transformOrigin:"50% 50%", duration:1000, timingFunction:"ease", delay:0})
動畫實例可以調用以下方法來描述動畫,調用結束后會返回自身,支持鏈式調用的寫法。
animation 對象的方法列表:
樣式:
方法 | 參數 | 說明 |
---|---|---|
opacity | value | 透明度,參數范圍 0~1 |
backgroundColor | color | 顏色值 |
width | length | 長度值,如果傳入 Number 則默認使用 px,可傳入其他自定義單位的長度值 |
height | length | 長度值,如果傳入 Number 則默認使用 px,可傳入其他自定義單位的長度值 |
top | length | 長度值,如果傳入 Number 則默認使用 px,可傳入其他自定義單位的長度值 |
left | length | 長度值,如果傳入 Number 則默認使用 px,可傳入其他自定義單位的長度值 |
bottom | length | 長度值,如果傳入 Number 則默認使用 px,可傳入其他自定義單位的長度值 |
right | length | 長度值,如果傳入 Number 則默認使用 px,可傳入其他自定義單位的長度值 |
旋轉:
方法 | 參數 | 說明 |
---|---|---|
rotate | deg | deg的范圍-180~180,從原點順時針旋轉一個deg角度 |
rotateX | deg | deg的范圍-180~180,在X軸旋轉一個deg角度 |
rotateY | deg | deg的范圍-180~180,在Y軸旋轉一個deg角度 |
rotateZ | deg | deg的范圍-180~180,在Z軸旋轉一個deg角度 |
rotate3d | (x,y,z,deg) | 同transform-function rotate3d |
縮放:
方法 | 參數 | 說明 |
---|---|---|
scale | sx,[sy] | 一個參數時,表示在X軸、Y軸同時縮放sx倍數;兩個參數時表示在X軸縮放sx倍數,在Y軸縮放sy倍數 |
scaleX | sx | 在X軸縮放sx倍數 |
scaleY | sy | 在Y軸縮放sy倍數 |
scaleZ | sz | 在Z軸縮放sy倍數 |
scale3d | (sx,sy,sz) | 在X軸縮放sx倍數,在Y軸縮放sy倍數,在Z軸縮放sz倍數 |
偏移:
方法 | 參數 | 說明 |
---|---|---|
translate | tx,[ty] | 一個參數時,表示在X軸偏移tx,單位px;兩個參數時,表示在X軸偏移tx,在Y軸偏移ty,單位px。 |
translateX | tx | 在X軸偏移tx,單位px |
translateY | ty | 在Y軸偏移tx,單位px |
translateZ | tz | 在Z軸偏移tx,單位px |
translate3d | (tx,ty,tz) | 在X軸偏移tx,在Y軸偏移ty,在Z軸偏移tz,單位px |
傾斜:
方法 | 參數 | 說明 |
---|---|---|
skew | ax,[ay] | 參數范圍-180~180;一個參數時,Y軸坐標不變,X軸坐標延順時針傾斜ax度;兩個參數時,分別在X軸傾斜ax度,在Y軸傾斜ay度 |
skewX | ax | 參數范圍-180~180;Y軸坐標不變,X軸坐標延順時針傾斜ax度 |
skewY | ay | 參數范圍-180~180;X軸坐標不變,Y軸坐標延順時針傾斜ay度 |
矩陣變形:
方法 | 參數 | 說明 |
---|---|---|
matrix | (a,b,c,d,tx,ty) | 同transform-function matrix |
matrix3d | 同transform-function matrix3d |
調用動畫操作方法后要調用step()
來表示一組動畫完成,可以在一組動畫中調用任意多個動畫方法,一組動畫中的所有動畫會同時開始,一組動畫完成后才會進行下一組動畫。step 可以傳入一個跟wx.createAnimation()
一樣的配置參數用于指定當前組動畫的配置。
示例:
<view animation="{{animationData}}" style="background:red,height:100rpx,width:100rpx"></view>
Page({ data:{ animationData:{} }, onShow:function(){var animation = wx.createAnimation({ duration:1000, timingFunction:"ease", })this.animation = animation animation.scale(2,2).rotate(45).step();this.setData({ animationData:animation.export() }) setTimeout(function(){ animation.translate(30).step(); this.setData({ animationData:animation.export() }) }.bind(this),1000) }, rotateAndScale: function () {// 旋轉同時放大this.animation.rotate(45).scale(2, 2).step()this.setData({ animationData:animation.export() }) }, rotateThenScale: function () {// 先旋轉后放大this.animation.rotate(45).step()this.animation.scale(2, 2).step()this.setData({ animationData:animation.export() }) }, rotateAndScaleThenTranslate: function () {// 先旋轉同時放大,然后平移this.animation.rotate(45).scale(2, 2).step()this.animation.translate(100, 100).step({ duration: 1000 })this.setData({ animationData:animation.export() }) } })
小程序是一種不需要下載安裝即可使用的應用,通過掃描二維碼或是搜一搜立即使用,操作簡單,便于傳播,能夠實現消息通知、線下掃碼、公眾號關聯等七大功能。它基于微信運行的,類似于APP,想用就用,用完即走,不會占用內存。
感謝您的閱讀,希望您對“微信小程序如何創建一個動畫實例”這一關鍵問題有了一定的理解,具體使用情況還需要大家自己動手實驗使用過才能領會,快去試試吧,如果想閱讀更多相關知識點的文章,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。