本节学习目标

掌握内置组件animation的使用

我们在开发应用的时候,常常需要增加一些动画效果,来提高用户体验,经常用到的一些动画效果如下

  • 平移
  • 旋转
  • 缩放
  • 背景颜色改变
  • 组件透明图

weex 提供了一animition模块,通过这个模块的一个api可以实现上述的动画效果

API:transition(el, options, callback)
参数说明

1.el 执行动画组件的引用(ref="el"),通过this.$refs.el获取组件的引用
2.options 是一个对象,通常由四部分组成,

styles 设置不同样式过渡效果的键值对,值也是一个对象
duration:动画持续时间
delay:动画延时执行时间
timingFunction:过渡效果
3.callback动画执行完的回调

下面是一个使用例子

animation.transition(el,{
styles:{
transform: 'translate(250px, 100px)',
transformOrigin: 'center center'
},duration: 800, //ms
timingFunction: 'ease',
delay: 0 //ms
},res=>{})

下面讲解一下四个键值对的使用

  • styles

它可以设置的键为

描述 默认值
width 动画执行后应用到组件上的宽度值 int(如100)不使用单位
height 动画执行后应用到组件上的高度值 int(如100)不使用单位
backgroundColor 动画执行后应用到组件上的背景颜色 string none
opacity 动画执行后应用到组件上的不透明度值 介于 0 到 1 间的数值 1
transformOrigin 定义变化过程的中心点. 参数 x-aris 可能的值为 left、center、right、长度值或百分比值, 参数 y-axis 可能的值为 top、center、bottom、长度值或百分比值 x-axis y-axis center center
transform 定义应用在元素上的变换类型,支持下表列出的属性 object

注意

transformOrigin 这个值会影响动画的效果 如果你设置值为 “left top” 那么当旋转的时候,就不会是沿着中心点旋转,而是沿着左上角旋转

下面我们重点说一下transform 的使用

名称 描述 值类型 默认值
translate/translateX/translateY 指定元素移动的偏移量 像素值或百分比
rotate 指定元素将被旋转的角度,单位是度(deg) number
scale/scaleX/scaleY 按比例放大或缩小元素 number

下面是一些使用案例

transform:"translate(100,200)"// 沿x轴移动100px,y移动200px

transform:'translate(50%, 100)' // 沿x轴移动自身宽度的50%,沿y轴移动100px

transform: 'rotate(180deg)' // 注意一定要加上单位deg
  • duration
    动画持续时间,单位是毫秒ms 单位可以不用写

     duration: 800//800ms
  • timingFunction
    过渡效果有五种,最常用的是前四种

  • linear 匀速的过渡

  • ease-in 由慢到快的加速过渡

  • ease-out 由块到慢的减速过渡

  • ease-in-out 先加速后减速的过渡效果

  • cubic-bezier(x1, y1, x2, y2),三次贝塞尔函数中定义变化过程 取值范围0-1


先说步骤

  • Step1. <script>里引入的内置模块(animation)
const animation = weex.requireModule('animation')
  • Step2.获取组件的引用
  var el = this.$refs.test;

     如何给组件设置引用

<text class="rectangle" ref="test">字</text> 
  • Step3.执行动画
animation.transition(el,{
styles:{
transform: 'rotate(3.14)',
transformOrigin: 'center center'
},duration: 800, //ms
timingFunction: 'ease',
delay: 0 //ms
},res=>{})

本节的内容到这里就讲完了,请动手实战一下吧!

weex animation模块 使用指南的更多相关文章

  1. Weex入门与进阶指南

    Weex入门与进阶指南 标签: WeexiOSNative 2016-07-08 18:22 59586人阅读 评论(8) 收藏 举报 本文章已收录于:  iOS知识库  分类: iOS(87)  职 ...

  2. 基于Asterisk的VoIP开发指南——Asterisk 模块编写指南(1)

    原文:基于Asterisk的VoIP开发指南--Asterisk 模块编写指南(1) 1 开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三 ...

  3. 基于Neptune开发板的键盘蓝牙模块DIY指南

    目录: 1.下载开发板程序2.安装USB串口(CH340)驱动3.安装烧写工具4.烧写开发板程序 本期我们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南,利用 ...

  4. jQuery1.9.1源码分析--Animation模块

    var fxNow, // 使用一个ID来执行动画setInterval timerId, rfxtypes = /^(?:toggle|show|hide)$/, // eg: +=30.5px / ...

  5. yii2 modules模块配置指南

    在Yii2 中模块是可以无限级嵌套的,也就是说,模块可以包含另一个包含模块的模块,我们称前者为父模块,后者为子模块, 子模块必须在父模块的yiibaseModule::modules属性中申明,例如: ...

  6. Apache模块开发指南-APR池

    转:原文: http://blog.csdn.net/zmxiangde_88/article/details/8038150 ------------------------------------ ...

  7. 可能是最详细的UMD模块入门指南

    学习UMD 介绍 这个仓库记录了一些关于javascript UMD模块规范的demo,对我学习UMD规范有了很大帮助,希望也能帮助到你. 回顾 之前也写了几篇关于javascript模块的博客,链接 ...

  8. [SheetJS] js-xlsx模块学习指南

    简介 SheetJS是前端操作Excel以及类似的二维表的最佳选择之一,而js-xlsx是它的社区版本. js-xlsx将注意力集中到了数据转换和导出上,所以它支持相当多种类的数据解析和导出.不仅仅局 ...

  9. animation模块的使用

    1.动画的实现-初探 import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncA ...

随机推荐

  1. Ubuntu14.04升级cmake版本的方法

    在Ubuntu14.04用以下命令默认安装的cmake版本为2.8.x,有时我们需要更高版本的cmake,所以需要升级. $ sudo apt-get install cmake 可通过以下命令查询c ...

  2. sql 新建表

    CREATE TABLE `rims`.`rims_basic_dictionary_doctor_group` ( `id` INT(11) NOT NULL AUTO_INCREMENT prim ...

  3. 8,聚类分析 fenxinhuag

    1.K-Means聚类分析 2.系统聚类分析 样本间常用距离: 类间常用距离: 3.DBSCAN聚类分析

  4. selenium expected_conditions 源码学习记录

    #expected_conditions模块收集了一系列的场景判断方法 #源码地址 # https://seleniumhq.github.io/selenium/docs/api/py/_modul ...

  5. Linux之bzip2命令

    命令格式: bzip2 [-cdz] 档名 参数: -d :解压缩的参数 -z :压缩的参数 -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--be ...

  6. javascript之Prototype属性

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 什么叫DMZ区?DMZ区有什么作用?应该怎样构建DMZ

    您的公司有一堆电脑,但可以归为两大类:客户机.服务器.所谓客户机就是主动发起连接请求的机器,所谓服务器就是被动响应提供某些服务的机器.服务器又可以分仅供企业内网使用和为外网提供服务两种. 所以,如果把 ...

  8. C#连接内存数据库redis【1、Redis存读取数据】

    这一节演示下载.NET中怎样使用Redis存储数据.在.net中比较常用的客户端类库是ServiceStack,看下通过servicestack怎样存储数据. DLL下载:https://github ...

  9. JMeter 中的如何区分 Server Time 和 Network Time

    在 LR 中是有一个“网页细分图”的,通过这个图,你可以比较容易的区分哪些请求的响应时间最长,如果响应时间过程,是消耗在server处理的时候,还是消耗在网络传输过程中——也就是所谓的 Server ...

  10. Intervals and Timeouts

    Intervals var num = 0; var max = 10; function incrementNumber(){ num++; // if the max has not been r ...