小程序模板网

微信小程序--如何实现动画效果

发布时间:2017-12-19 10:33 所属栏目:小程序开发教程

view plaincopyviewclass="view_a"imageanimation="{{animation}}"class="a_img"src="http://img.blog.csdn.net/20170614190537974?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVUZPMDAwMDE=/font/5a6L5L2T/fonts ...

 
 
 

 

[html] view plain copy
 
  1. <view  class="view_a">  
  2. <image animation="{{animation}}" class="a_img" src="http://img.blog.csdn.net/20170614190537974?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVUZPMDAwMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"></image>  
  3. </view>  
  4. <view class="sure" bindtap="dh">发射</view>  

 

 

[css] view plain copy
 
  1. .sure{  
  2.   width10%;  
  3.   height:80rpx;  
  4.   margin-top0rpx;  
  5.   margin-left45%;  
  6.   background#00ddff;  
  7.   border-radius: 50rpx;  
  8.   text-aligncenter;  
  9.   line-height80rpx;  
  10.   color#fff;  
  11. }  
  12. .view_a{  
  13.   width100%;  
  14.   height900rpx;  
  15.   display: flex;  
  16.   background-imageurl('http://img.blog.csdn.net/20170615103714645?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVUZPMDAwMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center');  
  17. }  
  18. .a_img{  
  19.   margin-top600rpx;  
  20.   margin-left:100rpx;  
  21.   width80rpx;  
  22.   height:80rpx;  
  23. }  

[javascript] view plain copy
 
  1. data: {  
  2.     animation : ''  
  3.  },  
  4.  dh: function(){  
  5.     var that = this;  
  6.      //实例化  
  7.      that.animation = wx.createAnimation({  
  8.        duration: 200,  
  9.        timingFunction: "ease",  
  10.        delay: 1000,  
  11.        transformOrigin: 'center',  
  12.        success: function (res) {  
  13.          console.log(res)  
  14.        }  
  15.      })  
  16.      that.animation  
  17.      .rotate(180).step()   //原点顺时针旋转180度  也可以不加.step() 不加的话便是动画同时执行  
  18.      .rotate(-180).step()  //原点逆时针旋转180度  
  19.      .rotate(0).step()     //回到初始  
  20.      .scale(1.3).step()    // x,y轴同时缩放1.3倍  
  21.      .translateX(90).step()//x轴偏移90px  
  22.      .translateY(20).step()//y轴偏移20px  
  23.      .skew(30).step()      //x轴沿顺时针偏移30度  
  24.      .skew(-30).step()     //x轴沿逆时针偏移30度  
  25.      .skew(0).step()       //返回不偏移时  
  26.      .rotateY(180).step()  //Y轴旋转180度  
  27.      .translateY(-222).step()//在y轴偏移-222px  
  28.      .matrix3d(0.8, 0, 28).step();  
  29.      that.setData({  
  30.        animation: that.animation.export()  
  31.      })},  

 

二. 小程序动画 Animation API


wx.createAnimation(OBJECT)

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

注意: export 方法每次调用后会清掉之前的动画操作 

OBJECT参数说明:

参数 类型 必填 默认值 说明
duration Integer 400 动画持续时间,单位ms
timingFunction String "linear" 定义动画的效果
delay Integer 0 动画延迟时间,单位 ms
transformOrigin String "50% 50% 0" 设置transform-origin

timingFunction 有效值:

说明
linear 动画从头到尾的速度是相同的
ease 动画以低速开始,然后加快,在结束前变慢
ease-in 动画以低速开始
ease-in-out 动画以低速开始和结束
ease-out 动画以低速结束
step-start 动画第一帧就跳至结束状态直到结束
step-end 动画一直保持开始状态,最后一帧跳到结束状态
var animation = wx.createAnimation({
  transformOrigin: "50% 50%",
  duration: 1000,
  timingFunction: "ease",
  delay: 0
})

animation

动画实例可以调用以下方法来描述动画,调用结束后会返回自身,支持链式调用的写法。

animation 对象的方法列表:

样式:

方法 参数 说明
opacity value 透明度,参数范围 0~1
backgroundColor color 颜色值
width length 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值
height length 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值
top length 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值
left length 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值
bottom length 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值
right length 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值

旋转:

方法 参数 说明
rotate deg deg的范围-180~180,从原点顺时针旋转一个deg角度
rotateX deg deg的范围-180~180,在X轴旋转一个deg角度
rotateY deg deg的范围-180~180,在Y轴旋转一个deg角度
rotateZ deg deg的范围-180~180,在Z轴旋转一个deg角度
rotate3d (x,y,z,deg) 同transform-function rotate3d

缩放:

方法 参数 说明
scale sx,[sy] 一个参数时,表示在X轴、Y轴同时缩放sx倍数;两个参数时表示在X轴缩放sx倍数,在Y轴缩放sy倍数
scaleX sx 在X轴缩放sx倍数
scaleY sy 在Y轴缩放sy倍数
scaleZ sz 在Z轴缩放sy倍数
scale3d (sx,sy,sz) 在X轴缩放sx倍数,在Y轴缩放sy倍数,在Z轴缩放sz倍数

偏移:

方法 参数 说明
translate tx,[ty] 一个参数时,表示在X轴偏移tx,单位px;两个参数时,表示在X轴偏移tx,在Y轴偏移ty,单位px。
translateX tx 在X轴偏移tx,单位px
translateY ty 在Y轴偏移tx,单位px
translateZ tz 在Z轴偏移tx,单位px
translate3d (tx,ty,tz) 在X轴偏移tx,在Y轴偏移ty,在Z轴偏移tz,单位px

倾斜:

方法 参数 说明
skew ax,[ay] 参数范围-180~180;一个参数时,Y轴坐标不变,X轴坐标延顺时针倾斜ax度;两个参数时,分别在X轴倾斜ax度,在Y轴倾斜ay度
skewX ax 参数范围-180~180;Y轴坐标不变,X轴坐标延顺时针倾斜ax度
skewY ay 参数范围-180~180;X轴坐标不变,Y轴坐标延顺时针倾斜ay度

矩阵变形:

方法 参数 说明
matrix (a,b,c,d,tx,ty) 同transform-function matrix
matrix3d   同transform-function matrix3d

动画队列

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



易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/18205.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询