小程序实现css3动画

    loadAnimation() {
      //如果文字超出盒子,就滚动播放
      this.linner = true;
      this.animationObj = uni.createAnimation({
        timingFunction: "linear",
      }); //创建一个动画实例 animation
      this.startAnimation();
    },

    startAnimation() {
      //执行动画函数
      let height = this.records.length * 33;
      let that = this;
      let duration = 10000; //滚动的持续时间
      if (this.linner) {
        this.animationObj.translateY(-height).step({ duration }); //.step执行动画,duration参数为持续时间
        this.animation = this.animationObj.export(); //export 方法导出动画数据传递给组件的 animation 属性,执行完export会清除上一次动画
        this.$nextTick(() => {
          //等dom更新完成后再执行,dom渲染的过程是异步的
          this.linner = !this.linner;
          setTimeout(() => {
            //等动画执行完再进行下一次动画
            that.animationObj = uni.createAnimation({
              timingFunction: "step-start",
            });
            that.startAnimation();
          }, duration);
        });
      } else {
        let data = 1;
        this.animationObj.translateY(0).step({ data }); //.step执行动画,duration参数为持续时间
        this.animation = this.animationObj.export(); //export 方法导出动画数据传递给组件的 animation 属性,执行完export会清除上一次动画
        this.$nextTick(() => {
          //等dom更新完成后再执行,dom渲染的过程是异步的
          this.linner = !this.linner;
          //等动画执行完再进行下一次动画
          setTimeout(() => {
            //等动画执行完再进行下一次动画
            that.animationObj = uni.createAnimation({
              timingFunction: "linear",
            });
            that.startAnimation();
          }, 3000);
        });
      }
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值