亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用微信小程序canvas實現環形漸變

發布時間:2022-08-29 11:32:58 來源:億速云 閱讀:187 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么用微信小程序canvas實現環形漸變”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么用微信小程序canvas實現環形漸變”文章能幫助大家解決問題。

效果圖

怎么用微信小程序canvas實現環形漸變

后端返回的數據格式,需要的只有otherInfo里面的數據

怎么用微信小程序canvas實現環形漸變

wxml

<view>
    <canvas class="progress_bg" canvas-id="{{otherInfo.bgid}}"> </canvas>
    <canvas class="progress_canvas" canvas-id="{{otherInfo.pgid}}"> </canvas>
</view>
<view class="progress_text">
    <text class='progress_info'> {{otherInfo.sumPointNumber || 0}}分</text>
</view>

js

data:{
   otherInfo: {
      bgid: "bgid",
      pgid: "pgid",
      sumPointNumber: 100   // 默認圓環顯示的區域,全部顯示是100
    }
}

根據接口獲取數據,我只截取了需要的部分,賦值到data里面的otherInfo

怎么用微信小程序canvas實現環形漸變

下面是重要的canvas部分
用arc()方法創建圓,起始角設置為 0,結束角設置為 2*Math.PI(PI就是圓周率&pi;,PI是弧度制的&pi;,也就是180&deg;,所以,Math.PI = 3.14 = 180&deg;,PI是一個浮小數)

怎么用微信小程序canvas實現環形漸變

drawProgressbg() {
    let w = wx.getSystemInfoSync().screenWidth;
    let that = this;
    let ctx = wx.createCanvasContext(that.data.otherInfo.bgid)
    ctx.setLineWidth(8 * w / 375);
    ctx.setStrokeStyle('#DDEDFA');
    ctx.setLineCap('round');
    ctx.beginPath();
    ctx.arc(80 * w / 375, 80 * w / 375, 65 * w / 375, 0, 2 * Math.PI, false);
    ctx.stroke();
    ctx.draw();
  },
  drawCircle() {
    let w = wx.getSystemInfoSync().screenWidth;
    let that = this;
    let context = wx.createCanvasContext(that.data.otherInfo.pgid);
    context.setLineWidth(8 * w / 375);
    // context.setStrokeStyle('#55A5E6');    不漸變的背景色
    // 環形漸變的背景色
    var my_gradient = context.createLinearGradient(0, 0, 200, 0);
    my_gradient.addColorStop(1, "#FA6400");
    my_gradient.addColorStop(0, "#FFECAF");
    context.strokeStyle = my_gradient;
    context.setLineCap('round');
    context.beginPath();
    context.arc(80 * w / 375, 80 * w / 375, 65 * w / 375, -Math.PI / 2, that.data.otherInfo.sumPointNumber / 50 * Math.PI - Math.PI / 2, false);
    context.stroke();
    context.draw()
  },
  onLoad: function (options) {
    this.getList()   // 獲取的數據
    this.drawProgressbg();
    this.drawCircle()
  },

wxss

.progress_bg {
  position: absolute;
  left: 30%;
  width: 300rpx;
  height: 300rpx;
  z-index: 9;
}
.progress_canvas {
  left: 30%;
  width: 300rpx;
  height: 300rpx;
  z-index: 9;
}
.progress_text {
  display: flex; 
  align-items: center;
 justify-content: center;
 margin-top: -23%;
}
.progress_info {
  letter-spacing: 2rpx;
  color: #000;
  font-weight: 600;
  font-size: 38rpx;
}

關于“怎么用微信小程序canvas實現環形漸變”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朝阳区| 井研县| 毕节市| 山阳县| 横峰县| 霍州市| 吴旗县| 旌德县| 门头沟区| 扬州市| 新丰县| 富宁县| 深州市| 呼玛县| 阳曲县| 昭苏县| 泸溪县| 来安县| 邯郸县| 岫岩| 南宁市| 莲花县| 高尔夫| 衡山县| 宣化县| 四平市| 盐池县| 宜黄县| 洱源县| 德令哈市| 赤城县| 诸城市| 两当县| 北京市| 藁城市| 启东市| 溧水县| 昆山市| 梨树县| 循化| 鄂伦春自治旗|