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


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 相关文章推荐
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
IE事件对象(The Internet Explorer Event Object)
Jun 27 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
Mar 20 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
2014 年最热门的21款JavaScript框架推荐
Dec 25 Javascript
javascript实现tab切换特效
Nov 12 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
JavaScript实现汉字转换为拼音的库文件示例
Dec 22 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
使用JavaScript解析URL的方法示例
Mar 01 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
Javascript作用域和作用域链原理解析
Mar 03 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
在JavaScript中调用php程序
2009/03/09 PHP
学习php中的正则表达式
2014/08/17 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
smarty简单应用实例
2015/11/03 PHP
popdiv
2006/07/14 Javascript
javascript add event remove event
2008/04/07 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
Python装饰器知识点补充
2018/05/28 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
python批量图片处理简单示例
2019/08/06 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
简单英文演讲稿
2014/01/01 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery