微信小程序 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 相关文章推荐
json跟xml的对比分析
Jun 10 Javascript
理解Javascript_10_对象模型
Oct 16 Javascript
JavaScript入门教程之引用类型
May 04 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
详解Vue.js动态绑定class
Dec 20 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
Apr 27 Javascript
关于javascript作用域的常见面试题分享
Jun 18 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
使用node打造自己的命令行工具方法教程
Mar 26 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
Apr 04 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
Aug 31 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 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维护文件系统
2006/10/09 PHP
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
JS实现图片切换特效
2019/12/23 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
Python实现简单猜数字游戏
2021/02/03 Python
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
企业治理工作自我评价
2013/09/26 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
员工工作及收入证明
2014/10/28 职场文书
董事长年会致辞
2015/07/29 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
Python四款GUI图形界面库介绍
2022/06/05 Python
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python