最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序繪制半圓(弧形)進(jìn)度條

 更新時間:2020年11月18日 08:56:59   作者:Archer_yy  
這篇文章主要為大家詳細(xì)介紹了微信小程序繪制半圓(弧形)進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了微信小程序繪制半圓進(jìn)度條的具體代碼,供大家參考,具體內(nèi)容如下

wxml:

<view class="progress">
  <canvas canvas-id="canvasProgress" style="width: {{canvasWidth}}rpx; height: {{canvasHeitht}}rpx;"></canvas>
  </view>
  <view class="progress">
  <canvas canvas-id="canvasProgressReal" style="width: {{canvasWidth}}rpx; height: {{canvasHeitht}}rpx;"></canvas>
</view>

js:

Page({

 /**
 * 頁面的初始數(shù)據(jù)
 */
 data: {
 canvasWidth: 500,
 canvasHeitht: 300,
 radioPos: 98,
 footNum: 0,
 footNumAll: 6000,
 myTargetFoot: 10000,
 degree: 195,
 timer: '',
 timerNum: '',
 },

 /**
 * 生命周期函數(shù)--監(jiān)聽頁面加載
 */
 onLoad: function(options) {
 var that = this;
 let widthPX = wx.getSystemInfoSync().windowWidth;
 let r = this.data.radioPos = widthPX * (500 / 750) * (300 / 365) * (2 / 4)
 var context = wx.createCanvasContext('canvasProgress')
 context.translate(24, 6);
 context.setStrokeStyle("#fff");
 context.setLineWidth(2);
 context.beginPath();
 for (let i = 195; i >= -15; i--) { //每1度繪制一條線
  let degree = i / 360 * Math.PI * 2
  let radio = r * 0.92 - r * 0.005 * (210 - i) / 240
  context.moveTo(r + radio * Math.cos(degree), r - radio * Math.sin(degree)); //向量加減
  context.lineTo(r + r * Math.cos(degree), r - r * Math.sin(degree)); //向量加減
  context.stroke();
 }
 context.draw();



 },

 /**
 * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
 */
 onReady: function() {

 },

 /**
 * 生命周期函數(shù)--監(jiān)聽頁面顯示
 */
 onShow: function() {
 let that = this
 //清理
 var context = wx.createCanvasContext('canvasProgressReal')
 context.clearRect(0, 0, this.data.canvasWidth, this.data.canvasHeitht)
 context.draw({
  reserve: true
 })
 that.walkAction()
 },

 /**
 * 生命周期函數(shù)--監(jiān)聽頁面隱藏
 */
 onHide: function() {

 },

 /**
 * 生命周期函數(shù)--監(jiān)聽頁面卸載
 */
 onUnload: function() {

 },

 /**
 * 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動作
 */
 onPullDownRefresh: function() {

 },

 /**
 * 頁面上拉觸底事件的處理函數(shù)
 */
 onReachBottom: function() {

 },

 /**
 * 用戶點擊右上角分享
 */
 onShareAppMessage: function() {

 },
 walkAction: function() {
 console.log('walk')
 this.setData({
  degree: 195
 })
 let that = this
 let r = this.data.radioPos
 let widthPX = wx.getSystemInfoSync().windowWidth;
 var context = wx.createCanvasContext('canvasProgressReal')
 context.clearRect(0, 0, this.data.canvasWidth, this.data.canvasHeitht)
 context.setStrokeStyle("#FDD08F");
 context.translate(24, 6);
 context.setLineWidth(2);
 let degreeMax = 195 - (this.data.footNumAll / this.data.myTargetFoot) * 240;
 if (Number.parseInt(this.data.footNumAll) >= Number.parseInt(this.data.myTargetFoot)) {
  console.log('footNumAll is smaller than myTargetFoot')
  degreeMax = -33
 }
 this.timer = setInterval(() => {
  if (that.data.degree > degreeMax) {
  context.beginPath();
  let degreeOne = that.data.degree / 360 * Math.PI * 2
  let radio = r * 0.92 - r * 0.005 * (195 - that.data.degree) / 240
  context.moveTo(r + radio * Math.cos(degreeOne), r - radio * Math.sin(degreeOne));
  context.lineTo(r + r * Math.cos(degreeOne), r - r * Math.sin(degreeOne));
  context.stroke();
  // context.draw({
  // reserve: true
  // })//這個方法真機上繪制有問題
  wx.drawCanvas({
   canvasId: 'canvasProgressReal',
   actions: context.getActions(),
   reserve: true
  })
  // that.data.degree -= 3;
  that.data.degree--;
  } else {
  clearInterval(that.timer)
  }
  // }, 50)
 }, 10)
 let tempTimes = 0;
 let times = (this.data.footNumAll / this.data.myTargetFoot) * 240 / 3;
 if (Number.parseInt(this.data.footNumAll) >= Number.parseInt(this.data.myTargetFoot)) {
  times = 80
 }
 let step = this.data.footNumAll / times
 this.timerNum = setInterval(() => {
  if (tempTimes < times) {
  that.setData({
   footNum: Math.floor(that.data.footNum + step)
  })
  tempTimes += 1;
  } else {
  that.setData({
   footNum: that.data.footNumAll
  })
  clearInterval(that.timerNum)
  }
  // }, 50)
 }, 10)
 },
})

wxss:

.progress {
 z-index: 1;
 width: 100%;
 height: 100%;
 position: absolute;
 left: 0;
 top: 0;
 display: flex !important;
 align-items: center;
 justify-content: center;
}

.progress canvas {
 width: 100%;
 height: 100%;
}

為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開發(fā)教程》小編為大家精心整理的,希望喜歡。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 為什么JavaScript中0.1 + 0.2 != 0.3

    為什么JavaScript中0.1 + 0.2 != 0.3

    這篇文章主要給大家介紹了關(guān)于為什么JavaScript中0.1 + 0.2 != 0.3的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 基于JS如何實現(xiàn)給字符加千分符(65,541,694,158)

    基于JS如何實現(xiàn)給字符加千分符(65,541,694,158)

    JS如何實現(xiàn)給字符加千分符,本文給大家?guī)砹嘶趈s實現(xiàn)的代碼,代碼簡單易懂,感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • JS獲取經(jīng)緯度并根據(jù)經(jīng)緯度得到城市信息簡單示例

    JS獲取經(jīng)緯度并根據(jù)經(jīng)緯度得到城市信息簡單示例

    前端時間剛好使用了百度地圖的js api定位獲取用戶當(dāng)前經(jīng)緯度并獲取當(dāng)前詳細(xì)位置的功能,為了方便下次找起來方便一些自己在這里記錄一下,這篇文章主要給大家介紹了關(guān)于JS獲取經(jīng)緯度并根據(jù)經(jīng)緯度得到城市信息的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • ES6中的rest參數(shù)與擴(kuò)展運算符詳解

    ES6中的rest參數(shù)與擴(kuò)展運算符詳解

    rest參數(shù)和擴(kuò)展運算符都是ES6新增的特性。下面這篇文章主要給大家介紹了關(guān)于ES6中rest參數(shù)與擴(kuò)展運算符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • 單線程JavaScript實現(xiàn)異步過程詳解

    單線程JavaScript實現(xiàn)異步過程詳解

    這篇文章主要介紹了單線程JavaScript實現(xiàn)異步過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 基于Javascript實現(xiàn)文件實時加載進(jìn)度的方法

    基于Javascript實現(xiàn)文件實時加載進(jìn)度的方法

    不知道大家有沒有發(fā)現(xiàn)在現(xiàn)在的移動頁面上,有很多情況需要加載大量的資源。但是移動端的訪問速度和pc還是有很大的差距,有些時候需要一些取巧的方式來提升用戶體驗,而實時顯示加載進(jìn)度就是其中一種。這篇文章就給大家分享了Javascript實現(xiàn)文件實時加載進(jìn)度的方法。
    2016-10-10
  • Javascript數(shù)組的排序 sort()方法和reverse()方法

    Javascript數(shù)組的排序 sort()方法和reverse()方法

    JavaScript提供了sort()方法和reverse()方法,使得我們可以簡單的對數(shù)組進(jìn)行排序操作和逆序操作
    2012-06-06
  • 詳解vscode中console.log的兩種快速寫法

    詳解vscode中console.log的兩種快速寫法

    這篇文章主要介紹了vscode中console.log的兩種快速寫法,每種方法通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • 基于JS分頁控件實現(xiàn)簡單美觀仿淘寶分頁按鈕效果

    基于JS分頁控件實現(xiàn)簡單美觀仿淘寶分頁按鈕效果

    這篇文章主要介紹了基于JS分頁控件實現(xiàn)簡單美觀仿淘寶分頁按鈕效果的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • 用JS實現(xiàn)貪吃蛇小游戲

    用JS實現(xiàn)貪吃蛇小游戲

    這篇文章主要為大家詳細(xì)介紹了用JS實現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

周口市| 铜梁县| 凤凰县| 茌平县| 英德市| 宜春市| 同江市| 华阴市| 陇西县| 宜春市| 拉孜县| 安吉县| 眉山市| 长治市| 桃源县| 武胜县| 西贡区| 宜兰县| 武宣县| 原平市| 深州市| 冕宁县| 格尔木市| 兰考县| 滦平县| 迁安市| 托克托县| 望江县| 兴安盟| 深泽县| 贵德县| 永胜县| 江陵县| 岳池县| 宝应县| 北辰区| 陆河县| 东乌珠穆沁旗| 龙门县| 清徐县| 革吉县|