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


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事件热键兼容ie|firefox
Dec 30 Javascript
js实现页面转发功能示例代码
Aug 05 Javascript
jquery 图片缩放拖动的简单实例
Jan 08 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
Mar 13 Javascript
jquery中获取元素里某一特定子元素的代码
Dec 02 Javascript
JS+CSS实现六级网站导航主菜单效果
Sep 28 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
Mvc提交表单的四种方法全程详解
Aug 10 Javascript
解决vue-cli + webpack 新建项目出错的问题
Mar 20 Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
微信小程序实现日历小功能
Nov 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
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
微信小程序发送订阅消息的方法(php 为例)
2019/10/30 PHP
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2018/02/18 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
python实现双色球随机选号
2020/01/01 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
园林设计专业毕业生求职信
2014/03/23 职场文书
公司会议开幕词
2015/01/29 职场文书
法学专业求职信范文
2015/03/19 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技