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


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创建一个选择文件的对话框代码
Jun 16 Javascript
JS解决url传值出现中文乱码的另类办法
Apr 08 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
Apr 21 Javascript
初识SmartJS - AOP三剑客
Jun 08 Javascript
PhotoSwipe异步动态加载图片方法
Aug 25 Javascript
微信小程序 加载 app-service.js 错误解决方法
Oct 12 Javascript
AngularJS+Bootstrap实现多文件上传与管理
Nov 08 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 Javascript
js中的DOM模拟购物车功能
Mar 22 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
layer.open 按钮的点击事件关闭方法
Aug 17 Javascript
js获取url页面id,也就是最后的数字文件名
Sep 25 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批量删除数据
2007/01/18 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
TensorFlow实现模型评估
2018/09/07 Python
Python-opencv 双线性插值实例
2020/01/17 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
德国网上宠物店:Zoobio
2018/05/23 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
学生党员思想汇报范文
2014/01/09 职场文书
列车长先进事迹材料
2014/01/25 职场文书
特教教师先进事迹
2014/05/21 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
礼仪培训心得体会
2016/01/22 职场文书
Java实现给Word文件添加文字水印
2022/02/15 Java/Android