您当前的位置: 首页 > 知识百科 > 叫车的小程序示例:滴滴微信小程序实例

叫车的小程序示例:滴滴微信小程序实例

时间:2023-07-01 14:05 阅读数:23 人阅读 分类:知识百科

  叫车的小程序示例:滴滴微信小程序实例,滴滴作为第一批的小程序开发者,大量地用到了动画,积累了一些经验,由于市面上的微信小程序动画案例很少,今天小编特意分享一部分案例给大家。希望大家喜欢。

  首先用 wx.createAnimation(OBJECT) 创建一个动画实例,OBJECT 里的参数是设置动画 duration、timingFunction、delay、transformOrigin;然后通过 export 方法将动画实例输出并 setData 给组件 data{} 里的 animation 属*。

  在开始说下面的小动画之前需要注意以下几点:

  小程序官方动画 API 文档的最下面的 bug&tip :

  bug: IOS/Android 6.3.30 通过step()分隔动画,只有第一步动画能生效。

  在小程序动画文档里的 wx.creatAnimation(OBJECT) 这个方法提供的参数没有类似 css3 animation-iteration-count 这样的参数。

  接来就说说下面的小动画案例:

  


  如上图我们要实现小圆点沿着圆圈轨迹运动的小动画。

  WXML:

  两个 view 标签,一个是路径圆圈,圆圈可以用背景图来做也可以用 border-radius 来实现;一个是圆点。

 

  WXSS:

  基本设置定位,这里只放宽高。

  .animation-box{

  width: 176px;

  height:176px;

  }

  .time-crl-path {

  width: 176px;

  height: 176px;

  ......

  }

  .crl-dot {

  width: 9px;

  height:9px;

  ......

  }

  . JS:

  transformOrigin 这个参数所设置的是小圆点旋转时的原点,默认是元素中心,下面设置的就是路径圆圈的中心,具体参数需要根据路径圆圈不来算。

  Page({

  data: {

  dotAnData: {}

  },

  onShow: function(){

  var i = 0

  var dotAnData =wx.createAnimation({

  duration: 1000,

  transformOrigin: '4px 91px'

  })

  dotAnFun =setInterval(function() {

  dotAnData.rotate(6 * (++i)).step()

  that.setData({

  dotAnData: dotAnData.export()

  })

  }.bind(that), 1000)

  }

  })

  从上面的代码可以看出是使用 setInterval() 解决了文章开头的两项注意事项。

  那么为什么不执行 rotate(360) 或者 rotate(180) ?

  这就要注意官方文档的 rotate(deg) 的 deg 的取值范围 -180 ~ 180,从原点顺时针旋转一个 deg。还有就是 rotate animation 在运动角度幅度较大的情况下轨迹会有偏离,就是说在正常设置的 transformOrigin 的情况下圆点运动轨迹会有偏离。

  所以上面的小动画案例就是把它拆分,定义 deg 为 6 作基本增加量, ++i 累加,这样在正常的 transformOrigin 下整个动画就是由每个小动画 rotate(6) 组成的。

  感谢大家阅读叫车的小程序示例:滴滴微信小程序实例的全部内容,如需了解更多更详细的小程序、小程序资讯,赶快登录微小乔网站。

  更多推荐:

  如何实现微信小程序简单留言板?

  微信小程序查询IP小程序代码示例

  微信小程序中form 表单提交和取值实例详解