
前兩步是定義一個動畫并設(shè)置都要干什么,然后把這個設(shè)置好的“規(guī)則”扔給界面上的某個元素,讓它按照這個規(guī)則執(zhí)行。
當(dāng)然如果有多個元素的animation="{{ani}}",也都會執(zhí)行這個動畫規(guī)則。
制作一個動畫點擊把向下的箭頭變?yōu)橄蛏系募^

點擊前

點擊后
代碼如下:
index.wxml
<view bindtap='selectToggle'>
<view >商品</view>
<image src='../img/index_next.png' animation="{{animationData}}"></image>
</view>
</view>

image.png
相關(guān)參數(shù)及方法
簡單介紹一下例子中的幾個參數(shù)和方法(其他的詳見官方文檔)
duration: 動畫持續(xù)多少毫秒
timingFunction: “運動”的方式,例子中的 'ease'代表動畫以低速開始,然后加快,在結(jié)束前變慢
delay: 多久后動畫開始運行
step():一組動畫完成,比如想讓HelloWorld向右上方移動并變透明后,再次向左移動50可以先寫animation.opacity(0.2).translate(100, -100).step()在繼續(xù)寫animation.translateX( -50).step(), 作用就是向右上方移動和變透明是同時進(jìn)行, 這兩種變化完成之后才會進(jìn)行向左運行的一步。
index.js
var nowShow = this.data.selectShow; //獲取當(dāng)前箭頭向上還是向下
var animation = wx.createAnimation({
timingFunction: "ease" //動畫效果
})
this.animation = animation;
if (nowShow) { //為true箭頭是向下,旋轉(zhuǎn)到0度
animation.rotate(0).step();
this.setData({
//導(dǎo)出動畫隊列。export 方法每次調(diào)用后會清掉之前的動畫操作。
animationData: animation.export()
})
} else {
animation.rotate(180).step(); //為false箭頭向上,旋轉(zhuǎn)180度
this.setData({
animationData: animation.export()
})
}
this.setData({
selectShow: !nowShow //每次點擊切換箭頭是向上還是向下
})