当前位置:   article > 正文

微信小程序学习(五)_wx.createanimation

wx.createanimation

一、Animation wx.createAnimation(Object object)

作用:创建一个动画实例animation 。调用实例的方法来描述动画。最后通过动画实例的 export 方法导出动画数据传递给组件的 animation 属性。(之后组件就会按照你约定的运动模式来进行)此方法最后返回一个Animation类型的对象;

属性类型默认值必填说明
durationnumber400动画持续时间,单位 ms
timingFunctionstring'linear'动画的效果(此属性一般要修改)
delaynumber0动画延迟时间,单位 ms
transformOriginstring'50% 50% 0'一般用于旋转效果

timingFunction 的合法值

说明
'linear'动画从头到尾的速度是相同的,用于设置动画的模式(常用
'ease'动画以低速开始,然后加快,在结束前变慢
'ease-in'动画以低速开始
'ease-in-out'动画以低速开始和结束
'ease-out'动画以低速结束
'step-start'动画第一帧就跳至结束状态直到结束
'step-end'动画一直保持开始状态,最后一帧跳到结束状态

动画对象的常用方法(Function):

一般控制动画的方式有旋转(rotate)平移(transform)放缩(scale)三种;

在使用这些方法之前我们需要创建一个动画对象,创建方式如下:(核心就是创建动画实例

animation=wx.createAnimation({参数列表})

之后我们可以通过此动画对象来调用对应的动态效果,下面介绍几个常用的方法

  1. animation.scale("number");//等比例放大或缩小number倍数
  2. animation.rotateY("number");//沿着Y轴旋转number角度【-180,180
  3. animation.transformX("number");//沿着X轴平移number距离
  4. animation.opacity("number");//设置组件的透明度【0,1
  5. animation.backgroundColor("string");//设置组件的背景颜色
  6. animation.step();//表示一组动画一步一步的执行,上一步结束下一步才开始
  7. animation.width("number")
  8. animation.height("number")//设置组件的宽高
  9. (注:上面方法的X,Y,Z为坐标轴可以相互替换)

实战:旋转图形+放缩+位移:(上述方法的综合应用)

  1. //WXML视图界面/* pages/index/index.wxml */
  2. <view wx:if="{{hidden}}" style="position:relative;left:182rpx;width:400rpx;height:400rpx;" animation="{{animatiomMain2}}">
  3. <text>on the way</text>
  4. <view animation="{{animatiomMain1}}"></view>
  5. <view animation="{{animatiomMain1}}" class="show1"></view>
  6. <view animation="{{animatiomMain1}}" class="show2"></view>
  7. <view animation="{{animatiomMain1}}" class="show3"></view>
  8. <view animation="{{animatiomMain1}}" class="show4"></view>
  9. <view animation="{{animatiomMain1}}" class="show5"></view>
  10. <view animation="{{animatiomMain1}}" class="show6"></view>
  11. </view>
  12. /* pages/index/index.wxss */
  13. page{
  14. text-align: center;
  15. }
  16. text{
  17. position: relative;
  18. top:182rpx;
  19. font-size: large;
  20. }
  21. view{
  22. position: absolute;
  23. left: 112rpx;
  24. width: 180rpx;
  25. height: 180rpx;
  26. top:20rpx;
  27. text-align: center;
  28. vertical-align: -webkit-baseline-middle;
  29. margin-top:100rpx;
  30. border: 2rpx solid black;
  31. }
  32. .show1{
  33. transform: rotate(30deg);
  34. border: 2rpx solid black;
  35. }
  36. .show2{
  37. transform: rotate(60deg);
  38. border: 2rpx solid black;
  39. }
  40. .show3{
  41. transform: rotate(90deg);
  42. border: 2rpx solid black;
  43. }
  44. .show4{
  45. transform: rotate(120deg);
  46. border: 2rpx solid black;
  47. }
  48. .show5{
  49. transform: rotate(150deg);
  50. border: 2rpx solid black;
  51. }
  52. .show6{
  53. transform: rotate(180deg);
  54. border: 2rpx solid black;
  55. }
  56. button{
  57. top:600rpx;
  58. }
  59. // pages/index/index.js
  60. Page({
  61. data: {
  62. animatiomMain1: "none",
  63. hidden:false,
  64. animatiomMain2:"none"
  65. },
  66. onShow: function() {
  67. this.setData({hidden:true})
  68. var obj = wx.createAnimation({
  69. duration: 5000,
  70. delay:0
  71. }) //创建一个动画对象
  72. this.animation = obj
  73. var next = true;
  74. setInterval(function() {
  75. if (next) {
  76. this.animation.rotate(180).scale(1.8).step()
  77. next = !next
  78. } else {
  79. this.animation.rotate(-180).scale(0).step()
  80. next = !next
  81. }
  82. this.setData({
  83. animatiomMain1: obj.export(), //重新渲染动画对象
  84. })
  85. }.bind(this), 5400)
  86. var obj2 = wx.createAnimation({
  87. duration: 5000,
  88. delay: 0
  89. }) //创建一个动画对象
  90. this.animation2 = obj2
  91. setInterval(function () {
  92. if (next) {
  93. this.animation2.translateY(20).scale(0.8).step()
  94. } else {
  95. this.animation2.translateY(-10).scale(0.6).step()
  96. }
  97. this.setData({
  98. animatiomMain2: obj2.export(), //重新渲染动画对象
  99. })
  100. }.bind(this), 5400)
  101. }
  102. })

运行结果:

除了上述操作,也可以通过此api实现卡牌翻转的功能,相比传统HTML+CSS的操作更为简单和易于理解;

wx.stopPullDownRefresh(Object object)wx.startPullDownRefresh(Object object)为微信的两种刷新模式;

(注:两者的参数一致,如下表所示,一般使用前两种参数,刷新可与this.setData连用,起到重新数据绑定的作用,且这两者一般在一起使用,但在使用之前需要将json中的"enablePullDownRefresh":设置为true

属性类型默认值必填说明
successfunction 接口调用成功的回调函数
failfunction 接口调用失败的回调函数
completefunction 接口调用结束的回调函数(调用成功、失败都会执行)
  1. // pages/index/index.wxml
  2. <view>刷新{{info}}次</view>
  3. // pages/index/index.js
  4. Page({
  5. data: {
  6. info:1
  7. },
  8. onLoad:function(){
  9. wx.startPullDownRefresh()
  10. },
  11. onPullDownRefresh() {
  12. var i=this.data.info+1
  13. this.setData({
  14. info:i
  15. })
  16. wx.stopPullDownRefresh()
  17. }
  18. }) //下拉刷新的简单使用,每一次刷新都会提示刷新次数,一定要把json中的刷新设置为true

wx.setBackgroundTextStyle(Object object):用于设定背景字体风格

wx.setBackgroundColor(Object object) :用于设定背景颜色(这两者一般不会使用,背景色一般以白色风格为主)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/284103
推荐阅读
相关标签
  

闽ICP备14008679号