前兩步是定義一個(gè)動(dòng)畫并設(shè)置都要干什么搔课,然后把這個(gè)設(shè)置好的“規(guī)則”扔給界面上的某個(gè)元素,讓它按照這個(gè)規(guī)則執(zhí)行。
當(dāng)然如果有多個(gè)元素的animation="{{ani}}",也都會(huì)執(zhí)行這個(gè)動(dòng)畫規(guī)則踏堡。
制作一個(gè)動(dòng)畫點(diǎn)擊把向下的箭頭變?yōu)橄蛏系募^
代碼如下:
index.wxml
<view bindtap='selectToggle'>
<view >商品</view>
<image src='../img/index_next.png' animation="{{animationData}}"></image>
</view>
</view>
相關(guān)參數(shù)及方法
簡(jiǎn)單介紹一下例子中的幾個(gè)參數(shù)和方法(其他的詳見官方文檔)
duration: 動(dòng)畫持續(xù)多少毫秒
timingFunction: “運(yùn)動(dòng)”的方式,例子中的 'ease'代表動(dòng)畫以低速開始咒劲,然后加快暂吉,在結(jié)束前變慢
delay: 多久后動(dòng)畫開始運(yùn)行
step():
一組動(dòng)畫完成胖秒,比如想讓HelloWorld向右上方移動(dòng)并變透明后缎患,再次向左移動(dòng)50可以先寫animation.opacity(0.2).translate(100, -100).step()
在繼續(xù)寫animation.translateX( -50).step()
, 作用就是向右上方移動(dòng)和變透明是同時(shí)進(jìn)行慕的, 這兩種變化完成之后才會(huì)進(jìn)行向左運(yùn)行的一步。
index.js
var nowShow = this.data.selectShow; //獲取當(dāng)前箭頭向上還是向下
var animation = wx.createAnimation({
timingFunction: "ease" //動(dòng)畫效果
})
this.animation = animation;
if (nowShow) { //為true箭頭是向下挤渔,旋轉(zhuǎn)到0度
animation.rotate(0).step();
this.setData({
//導(dǎo)出動(dòng)畫隊(duì)列肮街。export 方法每次調(diào)用后會(huì)清掉之前的動(dòng)畫操作。
animationData: animation.export()
})
} else {
animation.rotate(180).step(); //為false箭頭向上判导,旋轉(zhuǎn)180度
this.setData({
animationData: animation.export()
})
}
this.setData({
selectShow: !nowShow //每次點(diǎn)擊切換箭頭是向上還是向下
})