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


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 相关文章推荐
jQuery 加上最后自己的验证
Nov 04 Javascript
js 强制弹出窗口代码研究-又一款代码
Mar 20 Javascript
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
IE6 fixed的完美解决方案
Mar 31 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
Sep 28 Javascript
JS中BOM相关知识点总结(必看篇)
Nov 22 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
JS常见错误(Error)及处理方案详解
Jul 02 Javascript
javascript canvas时钟模拟器
Jul 13 Javascript
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
PHP动态变静态原理
2006/11/25 PHP
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python中安装easy_install的方法
2018/11/18 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python如何急速下载第三方库详解
2020/11/02 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
给海归自荐信的建议
2013/12/13 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
家长学校培训材料
2014/08/20 职场文书
优秀员工演讲稿
2019/06/21 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书