中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么用微信小程序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

南开区| 龙海市| 涪陵区| 海兴县| 武定县| 枣阳市| 昌黎县| 台北市| 甘洛县| 缙云县| 石泉县| 克什克腾旗| 县级市| 郁南县| 卓尼县| 阿鲁科尔沁旗| 乌什县| 勃利县| 江北区| 中西区| 平遥县| 杭州市| 连云港市| 嫩江县| 枣强县| 沧州市| 兴隆县| 成都市| 嘉兴市| 布尔津县| 左贡县| 安岳县| 淮安市| 北川| 濮阳市| 吉安县| 永靖县| 晋江市| 鲜城| 福安市| 灵武市|