微信小程序 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 相关文章推荐
htm调用JS代码
Mar 15 Javascript
简单通用的JS滑动门代码
Dec 19 Javascript
js chrome浏览器判断代码
Mar 28 Javascript
热点新闻滚动特效的js代码
Aug 17 Javascript
javascript入门教程基础篇
Nov 16 Javascript
jQuery实现无限往下滚动效果代码
Apr 16 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
浅谈JS封闭函数、闭包、内置对象
Jul 18 Javascript
微信小程序自定义底部导航带跳转功能
Nov 27 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
vue中touch和click共存的解决方式
Jul 28 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
多重?l件?合查?(二)
2006/10/09 PHP
PHP生成静态页
2006/11/25 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
Python开发编码规范
2006/09/08 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
python 实现登录网页的操作方法
2018/05/11 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
解决python线程卡死的问题
2019/02/18 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
数控专业大学生的自我鉴定
2013/11/13 职场文书
一名老师的自我评价
2014/02/07 职场文书
市场营销调查计划书
2014/05/02 职场文书
冬季安全检查方案
2014/05/23 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
小学同学聚会感言
2015/07/30 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
导游词之山海关
2019/12/10 职场文书