小程序动画如何实现

2019-05-21  本文已影响0人  _conquer_

在写小程序的时候,一般会碰到底部弹出动画,如何实现?

<view class='choose' wx:if="{{animation_box}}" animation='{{animationData}}'>
  这里面是内容
</view>
data: {
    animation_box:false,
    animationData:{}
  }
clickPup:function(){
   // 用that取代this,防止不必要的情况发生
    var that = this;
// 创建一个动画实例
    var animation  = wx.createAnimation({
      // 动画持续时间
        duration:500,
        // 定义动画效果,当前是匀速
        timingFunction:'linear'
    })
     // 将该变量赋值给当前动画
    that.animation = animation
    // 先在y轴偏移,然后用step()完成一个动画
    animation.translateY(200).step()
    // 用setData改变当前动画
    that.setData({
      // 通过export()方法导出数据
      animationData: animation.export(),
      // 改变view里面的Wx:if
      animation_box:true
    })
    // 设置setTimeout来改变y轴偏移量,实现有感觉的滑动
    setTimeout(function(){
      animation.translateY(0).step()
      that.setData({
        animationData: animation.export()
      })
    },200)
}
hideModal:function(e){
    var that = this;
    var animation = wx.createAnimation({
      duration:1000,
      timingFunction:'linear'
    })
    that.animation = animation
    animation.translateY(200).step()
    that.setData({
      animationData:animation.export()
      
    })
    setTimeout(function () {
      animation.translateY(0).step()
      that.setData({
        animationData: animation.export(),
        animation_box: false
      })
    }, 200)
  }
上一篇下一篇

猜你喜欢

热点阅读