微信小程序提供了实现动画的api——animation,但却不能循环播放,都是一次性的,动完就Over了,下面提供一个用微信小程序的animation来实现循环动画的玩具,抛砖引玉,希望大家能想出更好的方法来实现真正的循环。说是玩具是因为这个循环动画通过js脚本的setInterval来实现的,但’setInterval’在实际运行中会出现越来越严重的延迟,这是由于js的单线程运行模式所决定的(具体可以搜本关资料看),所以动画间隙并不是那么流畅,所以先玩玩吧,让我们来实现让云朵飘……

截图如下:

让云朵飘
实现代码:

index.wxml

index.js

onReady: function () {
// 页面渲染完成
// 实例化一个动画
var that = this;
var i = 0
var ii = 0

var animationData = wx.createAnimation({duration: 1000, // 默认为400     动画持续时间,单位mstimingFunction: 'ease-in-out',//transformOrigin: '4px 91px'
});var animationCloudData = wx.createAnimation({duration: 1000, // 默认为400     动画持续时间,单位mstimingFunction: 'ease-in-out',//transformOrigin: '4px 91px'
});// 顺序执行,当已经执行完上面的代码就会开启定时器
// 循环执行代码
//dotAnFun = setInterval(function () {});
/*setInterval(function () {// 动画脚本定义//animationData.rotate(6 * (++i)).step()//animationData.scale(2, 2).rotate(45).step().scale(1, 1).step();animationData.translateY(10).step({ duration: 500 }).translateY(-10).step({ duration: 500 });// 更新数据that.setData({// 导出动画示例animationData: animationData.export(),//animationCloudData: animationCloudData.export(),        })++i;console.log(i);
}.bind(that), 2000);//循环时间 这里1000是1秒
*///动画的脚本定义必须每次都重新生成,不能放在循环外
animationCloudData.translateX(200).step({ duration: 5000 }).translateX(0).step({ duration: 5000 });// 更新数据
that.setData({// 导出动画示例//animationData: animationData.export(),animationCloudData: animationCloudData.export(),
})setInterval(function () {//动画的脚本定义必须每次都重新生成,不能放在循环外animationCloudData.translateX(300).step({ duration: 5000 }).translateX(-100).step({ duration: 5000 });// 更新数据that.setData({// 导出动画示例//animationData: animationData.export(),animationCloudData: animationCloudData.export(),})++ii;console.log(ii);}.bind(that),10000);//3000这里的设置如果小于动画step的持续时间的话会导致执行一半后出错

}
index.wxss

.clouds{
margin-top:320rpx;
}
.yun1{
width:320rpx;
height: 120rpx;

}
附:参考备用:

/*
var that = this;
// 页面渲染完成
//实例化一个动画
var animation = wx.createAnimation({
duration: 1000,
timingFunction: ‘ease’,
})

this.animation = animationanimation.scale(2, 2).rotate(45).step().scale(1,1).step();//导出动画
this.setData({animationData: animation.export()
})var i = 0;
// 顺序执行,当已经执行完上面的代码就会开启定时器
/*setTimeout(function () {that.setData({animationData: animation.export()});i++;console.log(i);
}, 1000);*//*setInterval(function () {//循环执行代码 that.setData({animationData: animation.export()});i++;console.log(i);
}, 1000) //循环时间 这里是1秒

}*/

让云朵飘,微信小程序animation循环动画相关推荐

  1. 微信小程序animation有趣的自定义动画

    这几天在做小程序时遇到了一些问题:想要实现一个答对题目+5秒.答错题目-5秒的提示动画效果,但是关于微信小程序的animation自定义动画自己没有系统的学习过 做动画需要我们将一个复杂的动作过程,拆 ...

  2. 微信小程序-for循环

    微信小程序-for循环 通过wx:for可以根据指定的数组,循环渲染重复的组件结构,语法示例如下: <view wx:for="{{arr}}">索引是:{{index ...

  3. php 微信小程序 循环 多选,微信小程序 for 循环详解

    1,wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件.默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item 事例如下: wx ...

  4. 微信小程序for循环里面添加input事件

    1,在微信小程序for循环里面添加input事件,并把input输入值添加到列表里面 2.wxml <view class="item" wx:for="{{lis ...

  5. 微信小程序—for循环包括自定义for循环中的item和index(图文)

    微信小程序-for循环包括自定义for循环中的item和index <view wx:for="{{list}}" wx:key="{{index}}"& ...

  6. 小程序 | 微信小程序实现循环嵌套数据选择

    小程序 | 微信小程序实现循环嵌套数据选择 一.效果展示 二.代码实现 在.wxml文件中,有时从后台传来的数据可能会出现数组嵌套数组的情况,需要利用wx:for嵌套实现数据的展示.这时,外层循环正常 ...

  7. 微信小程序登录页动画-云层漂浮

    前言 2017年前端火了,微信小程序.weex.reactnative,就连支付宝也搞起了小程序,总感觉这是原生要毁灭的节奏啊,我也乘热上车万一波. 上效果图(GI动态图) 当我看到这张背景图的时候, ...

  8. 微信小程序没登录跳到登录页怎么做_微信小程序登录页动画怎么做

    2017年5月22日,微信小程序推出之时,限制非常多,现在越来越开放.微信小程序动画怎么做也受到越来越多人的关注,下面从多个方面来谈谈微信小程序怎么做的一些内容. 前言 2017年前端火了,微信小程序 ...

  9. “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。

    "完美"解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来. 参考文章: (1)"完美"解决微信小程序购物车抛物动画,在连续点击时出现计 ...

最新文章

  1. iOS UITouch触摸与UIGesture手势.01.事件、触摸(touch)事件
  2. ubuntu8.10家庭使用(一)
  3. 深度增强学习方向论文整理
  4. 创建磁盘陈列(RAID5)使用经验与原则
  5. 6个重构方法提升80%的代码质量
  6. 学妹,你要的C语言版AOE网络数据结构来了,就这么简单!
  7. html5初探ppt,HTML5---HTML5初探151019讲义.ppt
  8. 看完微软大神写的 求平均值代码,我意识到自己还是 too young 了
  9. js 对象 浅拷贝 和 深拷贝
  10. C语言getchar()=='\n'的使用,对输入的任意个字符操作
  11. github视频教程-03 如何使用github上pull-request功能(VS2013)
  12. 模式识别学习笔记——1(线性分类器)
  13. win7开启远程桌面
  14. element tabs label 插槽
  15. vue3+element plus下面,自定义el-table表格标题
  16. directX 正试图在 OS 加载程序锁内执行托管代码
  17. 设计需要撰写的技术文件_技术设计文件和游戏设计文件
  18. windows系统 方便处理数据的bat批处理脚本(个人记录)
  19. 虚拟机及Linux[CentOS7]下载、安装说明(全)
  20. Google黑客常用搜索语句(新增)

热门文章

  1. POi 导出word 表格,设置页面横版
  2. win7计算机如何调亮度,win7的电脑怎么调亮度
  3. 通向架构师的道路(第二十四天)之Oracle性能调优-朝拜先知之旅
  4. 怎么用Photoshop直接画一个矩形边框
  5. Spring事务扩展机制,我在美团Java研发岗工作的那5年
  6. android编辑word,如何在Microsoft Word for Android中插入和编辑表 | MOS86
  7. c语言编写对答机器人_用C语言机器人编程
  8. Windows 10 SDK版本2104 (最新10.0.20348.1) 详细安装教程
  9. NID-00135: 存在 1 个活动的线程
  10. RocketMQ系列:rocketmq运维控制台使用详解(全网独家)