微信小程序 animation API详解及实例代码


Posted in Javascript onOctober 08, 2016

动画水还是比较深的,这里只是简单介绍下小程序中动画的一些属性和注意事项,做动画前一定要整理好思路将动画一步步分解,再进行组合!这里只做引入。

wx.createAnimation(object)

看官方介绍

1.创建一个动画实例animation。调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性。

2.调用动画操作方法后要调用 step() 来表示一组动画完成,可以在一组动画中调用任意多个动画方法,一组动画中的所有动画会同时开始,一组动画完成后才会进行下一组动画。step 可以传入一个跟 wx.createAnimation() 一样的配置参数用于指定当前组动画的属性

这还是比较好理解的比如第一条对应代码animation: this.animation.export()
第二条比如缩放动画,也就说是一组scale,scaleX, scaleY…为一缩放动画组的一个动画方法,缩放动画组和旋转动画组通过step()链接,按顺序执行。代码中体验吧!看效果反过来看会更容易理解

主要属性:

微信小程序 animation API详解及实例代码

这里主要树下timingFunction和transformOrigin

timingFunction 设置动画效果

  1. linear 默认为linear 动画一直较为均匀
  2. ease 开始时缓慢中间加速到快结束时减速
  3. ease-in 开始的时候缓慢
  4. ease-in-out 开始和结束时减速
  5. ease-out 结束时减速
  6. step-start 动画一开始就跳到 100% 直到动画持续时间结束 一闪而过
  7. step-end 保持 0% 的样式直到动画持续时间结束 一闪而过

transformOrigin 设置动画的基点 默认%50 %50 0

left,center right是水平方向取值,对应的百分值为left=0%;center=50%;right=100%

top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%

动画组及动画方法

样式:

微信小程序 animation API详解及实例代码

旋转:

微信小程序 animation API详解及实例代码

缩放:

微信小程序 animation API详解及实例代码

偏移:

微信小程序 animation API详解及实例代码

倾斜:

微信小程序 animation API详解及实例代码

矩阵变形:

微信小程序 animation API详解及实例代码

演示单个动画组效果

微信小程序 animation API详解及实例代码

wxml

<view class="container">
 <view animation="{{animation}}" class="view">我在做动画</view>
</view>
<button type="primary" bindtap="rotate">旋转</button>

js

Page({
 data:{
  text:"Page animation",
  animation: ''
 },
 onLoad:function(options){
  // 页面初始化 options为页面跳转所带来的参数
 },
 onReady:function(){
  // 页面渲染完成
  //实例化一个动画
  this.animation = wx.createAnimation({
   // 动画持续时间,单位ms,默认值 400
   duration: 1000, 
   /**
    * http://cubic-bezier.com/#0,0,.58,1 
    * linear 动画一直较为均匀
    * ease  从匀速到加速在到匀速
    * ease-in 缓慢到匀速
    * ease-in-out 从缓慢到匀速再到缓慢
    * 
    * http://www.tuicool.com/articles/neqMVr
    * step-start 动画一开始就跳到 100% 直到动画持续时间结束 一闪而过
    * step-end  保持 0% 的样式直到动画持续时间结束    一闪而过
    */
   timingFunction: 'linear',
   // 延迟多长时间开始
   delay: 100,
   /**
    * 以什么为基点做动画 效果自己演示
    * left,center right是水平方向取值,对应的百分值为left=0%;center=50%;right=100%
    * top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%
    */
   transformOrigin: 'left top 0',
   success: function(res) {
    console.log(res)
   }
  })
 },

 /**
  * 旋转
  */
 rotate: function() {
  //顺时针旋转10度
  //
  this.animation.rotate(150).step()
  this.setData({
   //输出动画
   animation: this.animation.export()
  })
 },

 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 }
})

演示多个动画组效果

微信小程序 animation API详解及实例代码

这里我们只需要更改以下代码即可

  /**
   * 旋转
   */
  rotate: function() {
    //两个动画组 一定要以step()结尾
    /**
     * 动画顺序 顺时针旋转150度>x,y 放大二倍>x,y平移10px>x,y顺时针倾斜>改变样式和设置宽度宽度
     */
    this.animation.rotate(150).step().scale(2).step().translate(10).step().skew(10).step().opacity(0.5).width(10).step({ducation: 8000})
    this.setData({
      //输出动画
      animation: this.animation.export()
    })
  }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js下弹出窗口的变通
Apr 18 Javascript
JS基于面向对象实现的拖拽库实例
Sep 24 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 Javascript
实例解析jQuery中proxy()函数的用法
May 24 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
详解AngularJs ui-router 路由的简单介绍
Apr 26 Javascript
JavaScript学习笔记之函数记忆
Sep 06 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 Javascript
解决layer弹层遮罩挡住窗体的问题
Aug 17 Javascript
Vuex中实现数据状态查询与更改
Nov 08 Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 #Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 #Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 #Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
Oct 08 #Javascript
Javascript单例模式的介绍和实例
Oct 08 #Javascript
jquery把int类型转换成字符串类型的方法
Oct 07 #Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 #Javascript
You might like
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP Socket 编程
2010/04/09 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
分享PHP守护进程类
2015/12/30 PHP
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
django 常用orm操作详解
2017/09/13 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
行政专员岗位职责
2014/01/02 职场文书
初中作文评语大全
2014/04/23 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
新法人代表任命书
2014/06/06 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
初中家长评语和期望
2014/12/26 职场文书
酒店辞职书范文
2015/02/26 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers