1. 程式人生 > >小程式動畫-圖形旋轉進度條

小程式動畫-圖形旋轉進度條

實現效果(還是有很多不完善,如果你是需要多個你可以複製然後改個名字就可以重負使用了,當然你也可以弄成元件來高可用):

index.wxml

<view class='content'>
  <image class='img' animation="{{animationData}}" src='{{statusImage}}'></image>
  <view class='row {{statusClass}}'></view>
</view>

index.wxss

.content {
  margin-left: 5%;
  margin-top: 50%;
}
.img {
  width: 30px;
  height: 30px;
}
.row {
  display: inline-block;
  width: 70%;
  height: 30px;
  margin-left: 10px;
  border-radius: 10px;
}
/* 載入 */
.load {
   background-color: #7B7878;
}
/* 失敗 */
.failing {
  background-color: #E51C23;
}
/* 成功 */
.success {
  background-color: #7FCA27;
}

index.js

data 變數是根據你的業務來做處理的,這個隨機應變。

Page({

  /**
   * 頁面的初始資料
   */
  data: {
    rotateIndex: '',
    animationData: {},
    statusImage: '/resource/images/1/line_loading.png',
    statusClass: 'load'
  },

  /**
   * 生命週期函式--監聽頁面載入
   */
  onLoad: function (options) {
  
  },

  /**
   * 生命週期函式--監聽頁面初次渲染完成
   */
  onReady: function () {
    // 建立動畫
    var animation = wx.createAnimation({
      duration: 200,
      timingFunction: 'ease'
    })
    this.animation = animation
    // 圖片旋轉
    this.imageRotators()
  },
  // 圖片一直旋轉動畫
  imageRotators: function () {
    //連續動畫需要新增定時器,所傳引數每次+1就行
    this.timeInterval = setInterval(function () {
      this.data.rotateIndex = this.data.rotateIndex + 1;
      this.animation.rotateZ(360 * (this.data.rotateIndex)).step()
      this.setData({
        animationData: this.animation.export()
      })
    }.bind(this), 500)
    // 請求API介面或者別的操作
    this.request()
  },
  // 停止旋轉
  stopRotators: function () {
    if (this.timeInterval > 0) {
      clearInterval(this.timeInterval)
      this.timeInterval = 0
    }
  },
  // 請求API介面或者別的操作
  request: function(e) {
    var that = this
    console.log('request')
    setTimeout(function () {
      // 停止旋轉
      that.stopRotators()
      console.log('請求到了資料或者操作完成,停止旋轉')
      // 這裡是根據自己的業務邏輯設定
      var data =  true
      if (data) {
        that.setData({
          statusImage: '/resource/images/1/line_success.png',
          statusClass: 'success'
        })
      } else {
        that.setData({
          statusImage: '/resource/images/1/line_fail.png',
          statusClass: 'failing'
        })
      }
    }, 3000)
  },
  /**
   * 生命週期函式--監聽頁面顯示
   */
  onShow: function () {
  
  },

  /**
   * 生命週期函式--監聽頁面隱藏
   */
  onHide: function () {
  
  },

  /**
   * 生命週期函式--監聽頁面解除安裝
   */
  onUnload: function () {
  
  },

  /**
   * 頁面相關事件處理函式--監聽使用者下拉動作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 頁面上拉觸底事件的處理函式
   */
  onReachBottom: function () {
  
  },

  /**
   * 使用者點選右上角分享
   */
  onShareAppMessage: function () {
  
  }
})

相關推薦

程式動畫-圖形旋轉進度

實現效果(還是有很多不完善,如果你是需要多個你可以複製然後改個名字就可以重負使用了,當然你也可以弄成元件來高可用):index.wxml<view class='content'> <image class='img' animation="{{anim

程式 投票或砍價進度

示例圖: 上程式碼: index.wxml: <view class='clo_jdt'> <view style='width:{{width}}'></view> </view> <view>進度

微信程式:靜態圓形進度實現

效果圖: 實現: function drawCircleProgress(canvasId, backStrokeColor,strokeColor,x,y,radius,percent,text,fontSize,fontColor){ // console.l

微信原生程式實現音樂播放進度

audio標籤、progress標籤實現音樂播放進度條 HTML5 audio標籤、progress標籤實現音樂播放及進度條,通過拖動進度條更新播放進度。本次分享以功能實現為主,樣式先不考究,見諒。 HTML <view class="audio-pl

微信程式學習(9)-progress進度

progress進度條控制元件: 主要用於一項任務的完成進度,例如:資料下載進度、視訊播放進度、安裝進度等。 1.控制元件引數 2.屬性對控制元件的影響 show-info和active預設為false,如果為true的時候可以不寫屬性值,也可以寫為active=“tr

程式視訊自定義進度

大體思路:先在wxml檔案中定義一個進度條,然後在視訊上定義播放進度變化時觸發bindtimeupdate這個屬性,進而進度條值改變觸發sliderChanging()和sliderChange()方法。 1、定義進度條 <view class='process-

微信程式(學習九) -- 程式動畫實現旋轉(animation @keyframes)

前端一定離不開一個東西,動畫,無論是遊戲還是app還是網頁,都一定有動畫效果,微信小遊戲,小程式也有動畫效果,這裡有三種辦法實現小程式的動畫效果。 1、每幀setData() onReady: function () { var that = t

程式canvas繪製環形進度

       最近微信小程式是真的很火!依稀還記得自己第一次寫android的環形對比圖(點選開啟連結),一晃兩年已經過去了。時間過得真快。第一次寫部落格的時候還是上大三的時候。現在已經工作將近三年了。最近半年由於工作的原因很少寫部落格,那麼現在同樣從環形圖開始擼小程式,廢話

微信程式 —— 自定義帶進度的音訊播放控制元件audio

在使用微信小程式的音訊控制元件(audio)的時候發現居然控制元件中竟然沒有播放進度條。 具體的完整程式碼已經放到了PockerUI裡。 例如: 而微信小程式自帶的音訊空間(audi

程式動畫Animation,高度增加動畫形式,圖示旋轉動畫形式

小程式動畫Animation,高度增加動畫形式,圖示旋轉動畫形式 <view class="serach-title serach-list"  animation="{{animatheightadd}}" ><i-row class="serach-t

程式動畫-圖片一直旋轉

實現效果(可能有點bug就是你不能等到你寫的定時器時間到了,如果到了你在去點選是沒有旋轉效果)下面的效果也可以一進頁面就可以旋轉,我程式碼有實現。可以看我的程式碼index.wxml<view c

兩種方案開發程式動畫

在普通的網頁開發中,動畫效果可以通過css3來實現大部分需求,在小程式開發中同樣可以使用css3,同時也可以通過api方式來實現。 指路:小程式animatiom動畫API API解讀 小程式中,通過呼叫api來建立動畫,需要先建立一個例項物件。這個物件通過wx.createAnimation返回,an

微信程式不規則圖形漸變填充

// Create linear gradient動態漸變 const grd = ctx.createLinearGradient(0, 0, 200, 0) //這個得寫 固定的 grd.addColorStop(0, 'red')//開始漸變的顏色 grd.addCo

程式-動畫,距離移動端適配方法

小程式動畫,距離移動端適配方法 問題: 由於小程式動畫如下: that.animation.translateY(-640 ).step() 距離沒有單位,據實測是手機的解析度,物理畫素乘以dpr,導致在不同手機上移動距離不相同 解: 使用小程式的獲取系統資

android 最簡單的方式實現旋轉進度

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">先看效果圖:</span> 要達到這樣的效果,很簡單

android帶動畫的圓形進度

偶然發現一個很好的app,圓環進度條,帶加速動畫,看起來相當不錯。嘗試著克隆一下。 反編譯一看,哇塞,啥3.1415926都幹出來了,太高階玩不轉啊,算了,想想其它方式吧。 先看效果圖: 這個草稿存了小半年.....先發布了再說。實現了預想的效果,具體程式碼稍後奉上。

Android動畫之——圓形進度加波浪線

效果圖 圓形進度條 public class RecordView extends View { //View預設最小寬度 private static final int DEFAULT_MIN_WIDTH = 500; p

程式動畫-迴圈放大縮小的動畫(一閃一閃的)

var circleCount = 0; // 心跳的外框動畫 this.animationMiddleHeaderItem = wx.createAnimation({ duration:1000, // 以毫秒為單

程式動畫的使用

小程式使用動畫API實現以物體中心原點為中心的旋轉,先看效果圖:wxml:<view  animation="{{animationData}}">    以我為中心旋轉</view>js:Page({data({    animationData:

CircleProgressBar 帶載入動畫的環形進度

<am.widget.circleprogressbar.CircleProgressBar android:layout_width="match_parent" android:layout_height="480dp" app:cpbGravity="center"