微信小程序動畫(Animation)的實現(xiàn)及執(zhí)行步驟

前兩步是定義一個動畫并設(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 //每次點擊切換箭頭是向上還是向下
    })
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容