美文网首页
uni-app animation动画

uni-app animation动画

作者: 卡布i | 来源:发表于2020-01-22 15:10 被阅读0次

uni.createAnimation(OBJECT)

官方文档

官方是这么描述animation动画的过程:

创建一个动画实例 animation。调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性。

接下来我就一一说明

如何使用uniapp动画

先说需求, 点击按钮小猫开始运动

image
首先在元素上绑定动画(:animation="animationData")
<view :animation="animationData" class="animation">
    <image src="../../static/猫.png"></image>
</view>
<button @click="running" >别跑</button>

这一步是把animationData数据传递给animation属性

  export default {
    data() {
      return {
        animationData: {}
        // 在data中初始化animationData
      }
    },
    onUnload() {
      this.animationData = {}
      // 页面关闭后清空数据
    },
    onload(){
        this.animation = uni.createAnimation()  
        // 创建动画实例
    },
    methods: {
      running() {
        this.animation.translateX(500).step({duration:1000})
        // 调用实例的方法来描述动画,translateX定义动画类型为x轴偏移, 500为偏移长度, 单位px
        // 调用 step() 来表示一组动画完成(当前参数动画时间1s)
        // step 可以配置参数用于指定当前组动画的配置。具体参数请看文档
        this.animationData = this.animation.export()
        // export方法导出动画数据
      }
    }
  }

一个动画就定义好了
下面来看效果

image

总结一下

image

链式动画

可以在step()之后紧接第二个动画, 类似promise写法

this.animation.translateX(100).step()
    .translateY(100).step()
    .translateX(0).step()
    .translateY(0).step()

效果


image

动画多次触发

如果动画完成后, 元素未回到初始位置, 第二次动画是无法触发的
有两种方法使元素回到原位

通过链式操作

在动画最后在添加一个动画的, 效果是返回原位(动画时间是0)

this.animation.translateX(200).step({duration:700})
    .translateX(0).opacity(0).step({duration:0})

设置timeout

如果动画时间是0.7s, 那就在0.8s之后使用动画让元素返回
timeout调用时间在动画完成之后
同样duration为0

running() {
        this.animation = uni.createAnimation()
        this.animation.translateX(200).step({duration:700})
        this.animationData = this.animation.export()
        
        setTimeout(()=>{
          this.animation.translateX(0).opacity(0).step({duration:0})
          this.animationData = this.animation.export()
        }, 800);
      }

效果

image

相关文章

  • uni-app animation动画

    uni.createAnimation(OBJECT) 官方文档 官方是这么描述animation动画的过程: 创...

  • HTML5+CSS3实现自定义动画,媒体音频播放,本地存储loc

    animation:动画 动画名称:animation-name:ning; 动画的持续时间:animation-...

  • 2017-06-18

    css3中变形与动画(上) 1.Animation 动画定义animation动画2.Animation动画播放 ...

  • css动画整理

    一、动画执行 animation animation: name(动画名称) duration(动画时长...

  • Android 动画

    Android基础动画 Tween Animation 变换动画 Frame Animation 帧动画 Layo...

  • Android之基础动画

    Android基础动画 Tween Animation 变换动画Frame Animation 帧动画Layo...

  • Android动画

    Android 动画分类 帧动画(Frame Animation) 补间动画(Tweened Animation)...

  • 跳动的球

    animation animation-name:动画名 animation-duration:动画执行时间 an...

  • Android动画目录

    Android中的动画分类 Animation(动画):View Animation(视图动画):帧动画(Fram...

  • day09

    今天学了什么 动画animation 学会了什么 动画animation

网友评论

      本文标题:uni-app animation动画

      本文链接:https://www.haomeiwen.com/subject/naouzctx.html