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

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

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

本文實(shí)例為大家分享了微信小程序繪制半圓進(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({

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

 /**
 * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
 */
 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)聽(tīng)頁(yè)面初次渲染完成
 */
 onReady: function() {

 },

 /**
 * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面顯示
 */
 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)聽(tīng)頁(yè)面隱藏
 */
 onHide: function() {

 },

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

 },

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

 },

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

 },

 /**
 * 用戶點(diǎn)擊右上角分享
 */
 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
  // })//這個(gè)方法真機(jī)上繪制有問(wèn)題
  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)注度比較高的微信小程序教程一篇:《微信小程序開(kāi)發(fā)教程》小編為大家精心整理的,希望喜歡。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(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)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 基于JS如何實(shí)現(xiàn)給字符加千分符(65,541,694,158)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

麦盖提县| 德安县| 田东县| 东阳市| 襄樊市| 明溪县| 醴陵市| 莫力| 德阳市| 沁阳市| 湖口县| 乌审旗| 三门县| 道真| 舞阳县| 彭阳县| 黑龙江省| 师宗县| 兰西县| 鄢陵县| 荆门市| 新宁县| 获嘉县| 靖宇县| 呼和浩特市| 荃湾区| 古丈县| 海林市| 纳雍县| 南郑县| 桐城市| 锡林郭勒盟| 商都县| 龙海市| 石泉县| 樟树市| 昌平区| 厦门市| 镇远县| 香格里拉县| 尼勒克县|