微信小程序canvas2d繪制圓環(huán)進(jìn)度條組件

1.實(shí)現(xiàn)效果

image.png

2.微信小程序canvas官網(wǎng)

https://developers.weixin.qq.com/miniprogram/dev/component/canvas.html

3.組件介紹

Canvas2D接口(type="2d"),支持同層渲染的一個(gè)圓環(huán)進(jìn)度條炒瘟。(wx.createCanvasContext已廢棄)


image.png

4.部分代碼

drawCanvasRing() {
      //canvas 2d
      const query = wx.createSelectorQuery().in(this);
      query.select('#myCanvas')
        .fields({ node: true , size: true})
        .exec(this.init.bind(this))
    },
  init(res){
      const canvas = res[0].node
      const ctx = canvas.getContext('2d');
      const dpr = wx.getSystemInfoSync().pixelRatio
      canvas.width = res[0].width * dpr
      canvas.height = res[0].height * dpr
      ctx.scale(dpr, dpr);
      // 大小值的計(jì)算
      var circle_r = this.data.canvasWidth / 2; //畫布的一半绸吸,用來找中心點(diǎn)和半徑
      var startDegree = this.data.startDegree; //從什么角度開始
      var maxValue = this.data.maxValue; //最大值
      var minValue = this.data.minValue; //最小值
      var value = this.data.value; //當(dāng)前的值
      var lineColor = this.data.lineColor; //線條顏色
      var lineWidth = this.data.lineWidth; //線條寬度
      var percent = 360 * ((value - minValue) / (maxValue - minValue)); //計(jì)算結(jié)果

      //定義起始點(diǎn)
      ctx.translate(circle_r, circle_r);
      //灰色圓弧
      ctx.beginPath();
      ctx.strokeStyle="#ebebeb";
      ctx.lineWidth=lineWidth;
      ctx.arc(0, 0, circle_r - 10, 0, 2 * Math.PI, true);
      ctx.stroke();
      ctx.closePath();
      //有色彩的圓弧      
      ctx.beginPath();
      ctx.strokeStyle=lineColor;
      ctx.lineWidth=lineWidth;
      ctx.arc(0, 0, circle_r - 10, startDegree * Math.PI / 180 - 0.5 * Math.PI, percent * Math.PI / 180 + startDegree * Math.PI / 180 - 0.5 * Math.PI, false);
      ctx.stroke();
      ctx.closePath();
    }

5.完整代碼

https://gitee.com/susuhhhhhh/components

6.更多小程序案例

https://gitee.com/susuhhhhhh/wxmini_demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末步势,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吕座,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異弦追,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)花竞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門劲件,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人约急,你說我怎么就攤上這事零远。” “怎么了厌蔽?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵牵辣,是天一觀的道長。 經(jīng)常有香客問我奴饮,道長纬向,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任戴卜,我火速辦了婚禮逾条,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘投剥。我一直安慰自己师脂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布薇缅。 她就那樣靜靜地躺著危彩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泳桦。 梳的紋絲不亂的頭發(fā)上汤徽,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音灸撰,去河邊找鬼谒府。 笑死拼坎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的完疫。 我是一名探鬼主播泰鸡,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼壳鹤!你這毒婦竟也來了盛龄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤芳誓,失蹤者是張志新(化名)和其女友劉穎余舶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锹淌,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡匿值,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赂摆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挟憔。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烟号,靈堂內(nèi)的尸體忽然破棺而出绊谭,到底是詐尸還是另有隱情,我是刑警寧澤褥符,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布龙誊,位于F島的核電站抚垃,受9級(jí)特大地震影響喷楣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鹤树,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一铣焊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罕伯,春花似錦曲伊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至邑狸,卻和暖如春懈糯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背单雾。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工赚哗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留她紫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓贿讹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親够掠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355