注册登录

微信小程序开发教程之实现动画效果

2020-09-28
导读:小程序动画效果是一个基本的开发实现案例,那么如何利用微信小程序开发工具来实现这一效果呢。...

小程序动画效果是一个基本的开发实现案例,那么如何利用微信小程序开发工具来实现这一效果呢。

[html]view plaincopy

[css]view plaincopy

 

  1. .sure{
  2. width:10%;
  3. height:80rpx;
  4. margin-top:0rpx;
  5. margin-left:45%;
  6. background:#00ddff;
  7. border-radius:50rpx;
  8. text-align:center;
  9. line-height:80rpx;
  10. color:#fff;
  11. }
  12. .view_a{
  13. width:100%;
  14. height:900rpx;
  15. display:flex;
  16. background-image:url('https://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-top:600rpx;
  20. margin-left:100rpx;
  21. width:80rpx;
  22. height:80rpx;
  23. }

 

[javascript]view plaincopy

data:{

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

 

二. 小程序动画 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()一样的配置参数用于指定当前组动画的配置。

微信小程序开发教程之实现动画效果

重磅推荐:小程序开店目录

第一部分:小商店是什么

第二部分:如何开通一个小商店

第三部分:如何登录小商店

第四部分:开店任务常见问题

第五部分:小商店可以卖什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收货/物流

第九部分:小程序怎么结算

第十部分:小程序客服

第十一部分:电商创业

第十二部分:小程序游戏开发

电话咨询 微信咨询 预约演示 0元开店