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


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 相关文章推荐
直接生成打开窗口代码,不必下载
May 14 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
May 11 Javascript
JS实现控制表格行文本对齐的方法
Mar 30 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
May 19 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
Sep 01 Javascript
原生js开发的日历插件
Feb 04 Javascript
vue.js $refs和$emit 父子组件交互的方法
Dec 20 Javascript
Vue使用json-server进行后端数据模拟功能
Apr 17 Javascript
JS实现图片切换效果
Nov 17 Javascript
layui自定义ajax左侧三级菜单
Jul 26 Javascript
JavaScript算法学习之冒泡排序和选择排序
Nov 02 Javascript
怎么理解wx.navigateTo的events参数使用详情
May 18 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中常用的转义函数
2014/02/28 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php常用文件操作函数汇总
2014/11/22 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
总结js函数相关知识点
2018/02/27 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
分享一个常用的Python模拟登陆类
2015/03/29 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
简单介绍Python中的floor()方法
2015/05/15 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
python 动态调用函数实例解析
2019/10/21 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
序列化Python对象的方法
2020/08/01 Python
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
献爱心标语
2014/06/21 职场文书
525心理活动总结
2014/07/04 职场文书
会议简报格式范文
2015/07/20 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server