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


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 控制弹出窗口
Apr 10 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
Sep 10 Javascript
javascript背景时钟实现方法
Jun 18 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
Jun 08 Javascript
jQuery插件扩展实例【添加回调函数】
Nov 26 Javascript
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
3种vue路由传参的基本模式
Feb 22 Javascript
webpack4 处理CSS的方法示例
Sep 03 Javascript
javascript原型链学习记录之继承实现方式分析
May 01 Javascript
Node.js实现简单的爬取的示例代码
Jun 25 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 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 foreach 参数强制类型转换的问题
2010/12/10 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
js 字符串转换成数字的三种方法
2013/03/23 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
2013/12/27 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python编写屏幕截图程序方法
2015/02/18 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
提升python处理速度原理及方法实例
2019/12/25 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
政法大学毕业生自荐信范文
2014/01/01 职场文书
《泉水》教学反思
2014/04/11 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
2016幼儿园毕业感言
2015/12/08 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python