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


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 相关文章推荐
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
Jul 15 Javascript
JavaScript代码复用模式详解
Nov 07 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
Feb 26 Javascript
jquery遍历json对象集合详解
May 18 Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 Javascript
ajax实现动态下拉框示例
Jan 10 Javascript
原生js封装运动框架的示例讲解
Oct 01 Javascript
JavaScript之解构赋值的理解
Jan 30 Javascript
每天学点Vue源码之vm.$mount挂载函数
Mar 11 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
Element Cascader 级联选择器的使用示例
Jul 27 Javascript
Three.js实现雪糕地球的使用示例详解
Jul 07 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作的文本留言本的例子(六)
2006/10/09 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
python实现汉诺塔算法
2021/03/01 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
Python秒算24点实现及原理详解
2019/07/29 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
餐饮收银员岗位职责
2014/02/07 职场文书
2014年国庆标语
2014/06/30 职场文书
励志演讲稿800字
2014/08/21 职场文书
离婚协议书范文
2015/01/26 职场文书