1. 程式人生 > >微信小程式中使用Animation實現簡約Loading效果

微信小程式中使用Animation實現簡約Loading效果

效果圖:

wxml內容:

<!-- loading.wxml -->
<view class="loading">
  <view class="dot" animation="{{alpha[0]}}"></view>
  <view class="dot" animation="{{alpha[1]}}"></view>
  <view class="dot" animation="{{alpha[2]}}"></view>
  <view class="dot" animation="{{alpha[3]}}"></view>
  <view class="dot" animation="{{alpha[4]}}"></view>
</view>

wxss內容:

/** loading.wxss **/
.loading {
  width: 100%;
  position: absolute;
  bottom: 150rpx;
  justify-content: center;
  text-align: center;
}

.loading .dot{
  background-color: #fff;
  display: inline-block;
  /**圓點大小在這裡設定,高寬一致,圓角值為高寬的一半**/
  width: 16rpx;
  height: 16rpx;
  border-radius: 8rpx;
  margin: 0 10rpx;
  opacity: 0;
}

js內容:

/* loading.js */
Page({
  data: {
    alpha: [1,1,1,1,1]
  },
  onLoad: function () {
    var self = this;
    var _index = 0;
    var _alpha = self.data.alpha;
    var _speed = 500;
    var timer = setInterval(function () {
      var an_show = wx.createAnimation({});
      var an_hide = wx.createAnimation({});
      an_show.opacity(1).step({ duration: _speed });
      an_hide.opacity(0).step({ duration: _speed });
      _alpha[_index] = an_show;
      _alpha[_index == 0 ? 4 : _index - 1] = an_hide;
      self.setData({
        alpha: _alpha
      })
      _index = _index == 4 ? 0 : _index + 1;
    }, _speed);
  }
})