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


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 写的简单进度条控件
Jan 22 Javascript
js 模拟气泡屏保效果代码
Jul 10 Javascript
AngularJS基础 ng-readonly 指令简单示例
Aug 02 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
详谈js中window.location.search的用法和作用
Feb 13 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
vue实现按需加载组件及异步组件功能
May 27 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 Javascript
threejs太阳光与阴影效果实例代码
Apr 05 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
我的论坛源代码(二)
2006/10/09 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
jQuery实现跨域
2015/02/03 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Python 类的继承实例详解
2017/03/25 Python
python3+PyQt5实现柱状图
2018/04/24 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
大学生学年自我鉴定
2014/02/10 职场文书
社区先进事迹材料
2014/05/19 职场文书
视光学专业自荐信
2014/06/24 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL