小程序开发API之动画Animation

版权声明:欢迎转载,可Chat交流,写博不易请标明出处: https://blog.csdn.net/JackJia2015/article/details/86609604

效果展示


在这里插入图片描述

wx.createAnimation(Object object)

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

wx.createAnimation参数在这里插入图片描述

timingFunction 的合法值在这里插入图片描述### transform-origin

属性允许您改变被转换元素的位置。
transform-origin: x-axis y-axis z-axis;
其中

  • x-axis 定义视图被置于 X 轴的何处。可能的值:left、center、 right、length、%
  • y-axis 定义视图被置于 Y 轴的何处。可能的值: top、center、bottom、 length、%
  • z-axis 定义视图被置于 Z 轴的何处。可能的值:length

返回值

Animation

Animation

动画对象

Animation方法

动画方法
样式:在这里插入图片描述

旋转:在这里插入图片描述

缩放:在这里插入图片描述

偏移:在这里插入图片描述

倾斜:在这里插入图片描述

矩阵变形:在这里插入图片描述

Array.<Object> Animation.export()
导出动画队列。export 方法每次调用后会清掉之前的动画操作。
返回值
Array.
animationData

Animation.step(Object object)
表示一组动画完成。可以在一组动画中调用任意多个动画方法,一组动画中的所有动画会同时开始,一组动画完成后才会进行下一组动画。
参数
在这里插入图片描述
** timingFunction 的合法值 **
在这里插入图片描述
返回值
animation

Animation.backgroundColor(string value)
设置背景色
参数
string value 颜色值
返回值
Animation

Animation.bottom(number|string value)
设置 bottom 值
参数
string value 长度值,如果传入 number 则默认使用 px,可传入其他自定义单位的长度值
返回值
Animation

Animation.height(number|string value)
设置高度
参数
string value 长度值,如果传入 number 则默认使用 px,可传入其他自定义单位的长度值
返回值
Animation

Animation.left(number|string value)
设置 left 值
参数
string value 长度值,如果传入 number 则默认使用 px,可传入其他自定义单位的长度值
返回值
Animation

Animation.opacity(number value)
设置透明度
参数
number value 透明度,范围 0-1
返回值
Animation

Animation.right(number|string value)
设置 right 值
参数
string value 长度值,如果传入 number 则默认使用 px,可传入其他自定义单位的长度值
返回值
Animation

Animation.rotate(number angle)
从原点顺时针旋转一个角度
参数
number angle 旋转的角度。范围 [-180, 180]
返回值
Animation

Animation.rotate3d(number x, number y, number z, number angle)
从 X 轴顺时针旋转一个角度
参数
number x 旋转轴的 x 坐标
number y 旋转轴的 y 坐标
number z 旋转轴的 z 坐标
number angle 旋转的角度。范围 [-180, 180]
返回值
Animation

Animation.rotateX(number angle)
从 X 轴顺时针旋转一个角度
参数
number angle 旋转的角度。范围 [-180, 180]
返回值
Animation

Animation.rotateY(number angle)
从 Y 轴顺时针旋转一个角度
参数
number angle 旋转的角度。范围 [-180, 180]
返回值
Animation

Animation.rotateZ(number angle)
从 Z 轴顺时针旋转一个角度
参数
number angle 旋转的角度。范围 [-180, 180]
返回值
Animation

Animation.scale(number sx, number sy)
缩放
参数
number sx 当仅有 sx 参数时,表示在 X 轴、Y 轴同时缩放sx倍数
number sy 在 Y 轴缩放 sy 倍数
返回值
Animation

Animation.scale3d(number sx, number sy, number sz)
缩放
参数
number sx x 轴的缩放倍数
number sy y 轴的缩放倍数
number sz z 轴的缩放倍数
返回值
Animation

Animation.scaleX(number scale)
缩放 X 轴
参数
number scale X 轴的缩放倍数
返回值
Animation

Animation.scaleY(number scale)
缩放 Y 轴
参数
number scale Y 轴的缩放倍数
返回值
Animation

Animation.scaleZ(number scale)
缩放 Z 轴
参数
number scale Z 轴的缩放倍数
返回值
Animation

Animation.skew(number ax, number ay)
对 X、Y 轴坐标进行倾斜
参数
number ax 对 X 轴坐标倾斜的角度,范围 [-180, 180]
number ay 对 Y 轴坐标倾斜的角度,范围 [-180, 180]
返回值
Animation

Animation.skewX(number angle)
对 X 轴坐标进行倾斜
参数
number angle 倾斜的角度,范围 [-180, 180]
返回值
Animation

Animation.skewY(number angle)
对 Y 轴坐标进行倾斜
参数
number angle 倾斜的角度,范围 [-180, 180]
返回值
Animation

Animation.top(number|string value)
设置 top 值
参数
number|string value 长度值,如果传入 number 则默认使用 px,可传入其他自定义单位的长度值
返回值
Animation

Animation.translate(number tx, number ty)
平移变换
参数
number tx 当仅有该参数时表示在 X 轴偏移 tx,单位 px
number ty 在 Y 轴平移的距离,单位为 px
返回值
Animation

Animation.translate3d(number tx, number ty, number tz)
对 xyz 坐标进行平移变换
参数
number tx 在 X 轴平移的距离,单位为 px
number ty 在 Y 轴平移的距离,单位为 px
number tz 在 Z 轴平移的距离,单位为 px
返回值
Animation

Animation.translateX(number translation)
对 X 轴平移
参数
number translation 在 X 轴平移的距离,单位为 px
返回值
Animation

Animation.translateY(number translation)
对 Y 轴平移
参数
number translation 在 Y 轴平移的距离,单位为 px
返回值
Animation

Animation.translateZ(number translation)
对 Z 轴平移
参数
number translation 在 Z 轴平移的距离,单位为 px
返回值
Animation

Animation.width(number|string value)
设置宽度
参数
number|string value 长度值,如果传入 number 则默认使用 px,可传入其他自定义单位的长度值
返回值
Animation

Animation.matrix()
同 transform-function matrix
返回值
Animation
注:
CSS数据类型用于对元素的显示做变换。通常,这种变换可以由矩阵表示,并且可以使用每个点上的矩阵乘法来确定所得到的图像。
CSS 函数 matrix() 用六个指定的值来指定一个均匀的二维(2D)变换矩阵。这个矩形中的常量值是不作为参数进行传递的,其他的参数则在主要列的顺序中描述。
matrix(a, b, c, d, tx, ty)
其中
a b c d 以 的格式来描述线性变换
tx ty 以 的格式来描述变换的量

Animation.matrix3d()
同 transform-function matrix3d
CSS 函数 matrix3d() 用一个 4 × 4 的齐次矩阵来描述一个三维(3D)变换。16个参数都在主要列的顺序中描述。
matrix3d(a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3, a4, b4, c4, d4)
其中
a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3 d4 以 的格式来描述线性变换
a4 b4 c4 以 的格式来描述变换的量

示例:
效果展示


在这里插入图片描述

代码
index.wxml

<view class="container">
  <view animation="{{animation}}" class="view">----------</view>
</view>
<button bindtap='btnClick1' type="primary">动画</button>

index.wxss

button{
  margin: 20rpx
}

index.js

/*
  duration:400  动画持续时间,单位 ms
  timingFunction:'linear'  动画的效果
  delay:0    动画延迟时间,单位 ms
  transformOrigin:'50% 50% 0' 属性允许您改变被转换元素的位置。
  transform-origin: x-axis y-axis z-axis;
    x-axis   定义视图被置于 X 轴的何处。可能的值:left、center、 right、length、%
    y-axis       定义视图被置于 Y 轴的何处。可能的值: top、center、bottom、 length、%
    z-axis   定义视图被置于 Z 轴的何处。可能的值:length
*/
Page({
  data: {
    animation:''
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    //实例化一个动画 
    this.animation = wx.createAnimation({
      duration:1500,                 //动画持续时间,单位 ms
      timingFunction: 'linear',     //动画的效果
      delay: 100,                   //动画延迟时间
      transformOrigin: 'center center 0',//属性允许您改变被转换元素的位置。
    }) 
  },
  btnClick1: function (options) {
    //设置背景色为红色,透明度为0.1
    this.animation.backgroundColor('red').step({
      duration: 5000,                 //动画持续时间,单位 ms
      timingFunction: 'linear',     //动画的效果
      delay: 100,                   //动画延迟时间
      transformOrigin: 'center center 0',//属性允许您改变被转换元素的位置。
    })
    this.animation.opacity(0.5).step({})
    //旋转180
    this.animation.rotate(180).step({})
    //从 X 轴顺时针旋转一个角度
    this.animation.rotateX(180).step({})
    //从 Y 轴顺时针旋转一个角度
    this.animation.rotateY(180).step({})
    //从 Z 轴顺时针旋转一个角度
    this.animation.rotateZ(180).step({})
    //缩放
    this.animation.scale(1.5,1.5).step({})
    //对 xyz 坐标进行平移变换
    this.animation.translate3d(0, -200, 0).step({
      duration: 5000,                 //动画持续时间,单位 ms
      timingFunction: 'linear',     //动画的效果
      delay: 100,                   //动画延迟时间
      transformOrigin: 'center center 0',//属性允许您改变被转换元素的位置。
    })
    this.animation.translate3d(50, 50, 0).step({})

    this.setData({
      //输出动画
      animation: this.animation.export()
    })
  }
})





猜你喜欢

转载自blog.csdn.net/JackJia2015/article/details/86609604