微信小程序開發(fā)教程之實現(xiàn)動畫效果
小程序動畫效果是一個基本的開發(fā)實現(xiàn)案例,那么如何利用微信小程序開發(fā)工具來實現(xiàn)這一效果呢。
[html]view plaincopy
[css]view plaincopy
- .sure{
- width:10%;
- height:80rpx;
- margin-top:0rpx;
- margin-left:45%;
- background:#00ddff;
- border-radius:50rpx;
- text-align:center;
- line-height:80rpx;
- color:#fff;
- }
- .view_a{
- width:100%;
- height:900rpx;
- display:flex;
- background-image:url('https://img.blog.csdn.net/20170615103714645?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVUZPMDAwMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center');
- }
- .a_img{
- margin-top:600rpx;
- margin-left:100rpx;
- width:80rpx;
- height:80rpx;
- }
[javascript]view plaincopy
data:{
- animation:''
- },
- dh:function(){
- varthat=this;
- //實例化
- that.animation=wx.createAnimation({
- duration:200,
- timingFunction:"ease",
- delay:1000,
- transformOrigin:'center',
- success:function(res){
- console.log(res)
- }
- })
- that.animation
- .rotate(180).step()//原點順時針旋轉(zhuǎn)180度也可以不加.step()不加的話便是動畫同時執(zhí)行
- .rotate(-180).step()//原點逆時針旋轉(zhuǎn)180度
- .rotate(0).step()//回到初始
- .scale(1.3).step()//x,y軸同時縮放1.3倍
- .translateX(90).step()//x軸偏移90px
- .translateY(20).step()//y軸偏移20px
- .skew(30).step()//x軸沿順時針偏移30度
- .skew(-30).step()//x軸沿逆時針偏移30度
- .skew(0).step()//返回不偏移時
- .rotateY(180).step()//Y軸旋轉(zhuǎn)180度
- .translateY(-222).step()//在y軸偏移-222px
- .matrix3d(0.8,0,28).step();
- that.setData({
- animation:that.animation.export()
- })},
二. 小程序動畫 Animation API
wx.createAnimation(OBJECT)
創(chuàng)建一個動畫實例animation。調(diào)用實例的方法來描述動畫。最后通過動畫實例的export
方法導(dǎo)出動畫數(shù)據(jù)傳遞給組件的animation
屬性。
注意:export
方法每次調(diào)用后會清掉之前的動畫操作
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 默認(rèn)值 | 說明 |
---|---|---|---|---|
duration | Integer | 否 | 400 | 動畫持續(xù)時間,單位ms |
timingFunction | String | 否 | "linear" | 定義動畫的效果 |
delay | Integer | 否 | 0 | 動畫延遲時間,單位 ms |
transformOrigin | String | 否 | "50% 50% 0" | 設(shè)置transform-origin |
timingFunction 有效值:
值 | 說明 |
---|---|
linear | 動畫從頭到尾的速度是相同的 |
ease | 動畫以低速開始,然后加快,在結(jié)束前變慢 |
ease-in | 動畫以低速開始 |
ease-in-out | 動畫以低速開始和結(jié)束 |
ease-out | 動畫以低速結(jié)束 |
step-start | 動畫第一幀就跳至結(jié)束狀態(tài)直到結(jié)束 |
step-end | 動畫一直保持開始狀態(tài),最后一幀跳到結(jié)束狀態(tài) |
var animation = wx.createAnimation({
transformOrigin: "50% 50%",
duration: 1000,
timingFunction: "ease",
delay: 0
})
animation
動畫實例可以調(diào)用以下方法來描述動畫,調(diào)用結(jié)束后會返回自身,支持鏈?zhǔn)秸{(diào)用的寫法。
animation 對象的方法列表:
樣式:
方法 | 參數(shù) | 說明 |
---|---|---|
opacity | value | 透明度,參數(shù)范圍 0~1 |
backgroundColor | color | 顏色值 |
width | length | 長度值,如果傳入 Number 則默認(rèn)使用 px,可傳入其他自定義單位的長度值 |
height | length | 長度值,如果傳入 Number 則默認(rèn)使用 px,可傳入其他自定義單位的長度值 |
top | length | 長度值,如果傳入 Number 則默認(rèn)使用 px,可傳入其他自定義單位的長度值 |
left | length | 長度值,如果傳入 Number 則默認(rèn)使用 px,可傳入其他自定義單位的長度值 |
bottom | length | 長度值,如果傳入 Number 則默認(rèn)使用 px,可傳入其他自定義單位的長度值 |
right | length | 長度值,如果傳入 Number 則默認(rèn)使用 px,可傳入其他自定義單位的長度值 |
旋轉(zhuǎn):
方法 | 參數(shù) | 說明 |
---|---|---|
rotate | deg | deg的范圍-180~180,從原點順時針旋轉(zhuǎn)一個deg角度 |
rotateX | deg | deg的范圍-180~180,在X軸旋轉(zhuǎn)一個deg角度 |
rotateY | deg | deg的范圍-180~180,在Y軸旋轉(zhuǎn)一個deg角度 |
rotateZ | deg | deg的范圍-180~180,在Z軸旋轉(zhuǎn)一個deg角度 |
rotate3d | (x,y,z,deg) | 同transform-function rotate3d |
縮放:
方法 | 參數(shù) | 說明 |
---|---|---|
scale | sx,[sy] | 一個參數(shù)時,表示在X軸、Y軸同時縮放sx倍數(shù);兩個參數(shù)時表示在X軸縮放sx倍數(shù),在Y軸縮放sy倍數(shù) |
scaleX | sx | 在X軸縮放sx倍數(shù) |
scaleY | sy | 在Y軸縮放sy倍數(shù) |
scaleZ | sz | 在Z軸縮放sy倍數(shù) |
scale3d | (sx,sy,sz) | 在X軸縮放sx倍數(shù),在Y軸縮放sy倍數(shù),在Z軸縮放sz倍數(shù) |
偏移:
方法 | 參數(shù) | 說明 |
---|---|---|
translate | tx,[ty] | 一個參數(shù)時,表示在X軸偏移tx,單位px;兩個參數(shù)時,表示在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 |
傾斜:
方法 | 參數(shù) | 說明 |
---|---|---|
skew | ax,[ay] | 參數(shù)范圍-180~180;一個參數(shù)時,Y軸坐標(biāo)不變,X軸坐標(biāo)延順時針傾斜ax度;兩個參數(shù)時,分別在X軸傾斜ax度,在Y軸傾斜ay度 |
skewX | ax | 參數(shù)范圍-180~180;Y軸坐標(biāo)不變,X軸坐標(biāo)延順時針傾斜ax度 |
skewY | ay | 參數(shù)范圍-180~180;X軸坐標(biāo)不變,Y軸坐標(biāo)延順時針傾斜ay度 |
矩陣變形:
方法 | 參數(shù) | 說明 |
---|---|---|
matrix | (a,b,c,d,tx,ty) | 同transform-function matrix |
matrix3d | 同transform-function matrix3d |
動畫隊列
調(diào)用動畫操作方法后要調(diào)用step()
來表示一組動畫完成,可以在一組動畫中調(diào)用任意多個動畫方法,一組動畫中的所有動畫會同時開始,一組動畫完成后才會進行下一組動畫。step 可以傳入一個跟wx.createAnimation()
一樣的配置參數(shù)用于指定當(dāng)前組動畫的配置。
第二部分:如何開通一個小商店