微信小程序实现循环动画效果


Posted in Javascript onJuly 16, 2018

在微信小程序的交互效果中,通常通过各种动画效果来增强用户体验,本文通过微信小程序原生API来实现小程序中控件的各种动画效果,先看下本文最终的效果:

微信小程序实现循环动画效果 

 上图中的“关注公众号”动画就是我们要实现的效果。

 为了实现上文中的效果,我们首先来看一下微信小程序关于动画的官方API

微信官方API学习

wx.createAnimation(OBJECT)

说明:创建一个动画实例animation。调用动画操作方法后要调用 step() 来表示一组动画完成,可以在一组动画中调用任意多个动画方法,一组动画中的所有动画会同时开始,一组动画完成后才会进行下一组动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性。

属性方法:

微信小程序实现循环动画效果 

主要说明一下:timingFunction

微信小程序实现循环动画效果 

通过上述中的timingFunction值,可以设置动画的执行效果。

动画和动画方法

微信小程序实现循环动画效果 

注:旋转、缩放、偏移、倾斜、矩阵变形等API本文不在介绍,可参考官方API。

效果实现

通过上文的介绍,结合官方API文档,已经对创建动画的方法有了基本了解,接下来,开始实现效果图中的动画效果。

1.wxml文件添加动画属性

在wxml中创建一个布局,添加动画属性:

<view class='pro-attention' bindtap='toAttention' animation='{{attentionAnim}}'>
 <text>关注公众号</text>
</view>

2.JS中动画效果实现

Page({
 data: {
  attentionAnim: '',
  //....其他配置
 },
 /**
  * 生命周期函数--监听页面初次渲染完成
 */
 onReady: function () {
  var attentionAnim = wx.createAnimation({
   duration: 150,
   timingFunction: 'ease',
   delay: 0
  })
  //设置循环动画
  this.attentionAnim = attentionAnim
  var next = true;
  setInterval(function () {
   if (next) {
    //根据需求实现相应的动画
    this.attentionAnim.rotate(3).step()
    next = !next;
   } else {
    this.attentionAnim.rotate(-3).step()
    next = !next;
   }
   this.setData({
    //导出动画到指定控件animation属性
    attentionAnim: attentionAnim.export()
   })
  }.bind(this), 150)
 },
//....

通过wx.createAnimation创建一个动画,setInterval()方法执行循环调用。至此,即可实现效果图中的显示效果。

总结

以上所述是小编给大家介绍的微信小程序循环动画效果的实现,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript new fun的执行过程
Aug 05 Javascript
jQuery的live()方法对hover事件的处理示例
Feb 27 Javascript
IE6 hack for js 集锦
Sep 23 Javascript
JS实现定时自动关闭DIV层提示框的方法
May 11 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
Aug 06 Javascript
Bootstrap字体图标无法正常显示的解决方法
Oct 08 Javascript
JavaScript实现垂直滚动条效果
Jan 18 Javascript
Ionic+AngularJS实现登录和注册带验证功能
Feb 09 Javascript
基于node.js依赖express解析post请求四种数据格式
Feb 13 Javascript
Node.js中出现未捕获异常的处理方法
Jun 29 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
mpvue 如何使用腾讯视频插件的方法
Jul 16 #Javascript
Vue实现自定义下拉菜单功能
Jul 16 #Javascript
vue实现城市列表选择功能
Jul 16 #Javascript
JavaScript字符串转数字的5种方法及遇到的坑
Jul 16 #Javascript
Angular-UI Bootstrap组件实现警报功能
Jul 16 #Javascript
JS在if中的强制类型转换方式
Jul 15 #Javascript
微信小程序form表单组件示例代码
Jul 15 #Javascript
You might like
html静态页面调用php文件的方法
2014/11/13 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
javascript里的条件判断
2007/02/27 Javascript
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
python flask实现分页效果
2017/06/27 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
Python OpenCV获取视频的方法
2018/02/28 Python
Python post请求实现代码实例
2020/02/28 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
妇科医生自荐信
2013/11/05 职场文书
九九重阳节标语
2014/10/07 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers