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


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十个最常用的自定义函数(中文版)
Sep 07 Javascript
jquery制作居中遮罩层效果分享
Feb 21 Javascript
js检测用户输入密码强度
Oct 22 Javascript
JavaScript脚本库编写的方法
Dec 09 Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 Javascript
理解Angular数据双向绑定
Jan 10 Javascript
利用Ionic2 + angular4实现一个地区选择组件
Jul 27 Javascript
JavaScript 完成注册页面表单校验的实例
Aug 19 Javascript
基于Vue单文件组件详解
Sep 15 Javascript
简单的vuex 的使用案例笔记
Apr 13 Javascript
小程序实现列表点赞功能
Nov 02 Javascript
Nuxt.js 静态资源和打包的操作
Nov 06 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
PHP4中实现动态代理
2006/10/09 PHP
在字符串中把网址改成超级链接
2006/10/09 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
javascript 动态参数判空操作
2008/12/22 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
python爬取NUS-WIDE数据库图片
2016/10/05 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
酒店中秋节促销方案
2014/01/30 职场文书
人事部经理岗位职责
2014/03/07 职场文书
事业单位鉴定材料
2014/05/25 职场文书
安全横幅标语
2014/06/09 职场文书
法语专业求职信
2014/07/20 职场文书
信访维稳工作汇报
2014/10/27 职场文书
财务工作失误检讨书
2015/02/19 职场文书
个人自荐书范文
2015/03/09 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
Python实现单例模式的5种方法
2021/06/15 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
pycharm代码删除恢复的方法
2021/06/26 Python
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫