微信小程式實作即時圓形進度條的方法

不言
發布: 2018-06-23 15:12:12
原創
4266 人瀏覽過

這篇文章主要給大家介紹了利用微信小程式實現即時圓形進度條的方法,文中給出了詳細的範例程式碼,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。

前言

最近工作中為了做一個錄製按鈕,研究了下小程式的即時圓形進度條實現,下面這篇文章就來給大家詳細的介紹了實現的方法範例,廢話不多說,先來看看效果圖吧。

效果圖如下


#初始狀態

##點選中間按鈕開始繪製

繪製過程


繪製結束

##實作想法

建立兩個canvas標籤,先繪製底層的淺灰色圓圈背景,再繪製上層的紅色進度條。

WXML程式碼

<view class="wrap">
 <view class="circle-box">
 <canvas class="circle" style="width:200px; height:200px;" canvas-id="canvasArcCir">
 </canvas>
 <canvas class="circle" style="z-index: -5; width:200px; height:200px;" canvas-id="canvasCircle">
 </canvas>
 <view class="draw_btn" bindtap="drawCircle">开始动态绘制</view>
 </view>
</view>
登入後複製

WXSS程式碼

特別注意:

底層的canvas最好使用

z-index:-5;放置於底層##

page {
 width: 100%;
 height: 100%;
 background-color: #fff;
}

.circle-box {
 text-align: center;
 margin-top: 10vw;
}

.circle {
 position: absolute;
 left: 0;
 right: 0;
 margin: auto;
}

.draw_btn {
 width: 35vw;
 position: absolute;
 top: 33vw;
 right: 0;
 left: 0;
 margin: auto;
 border: 1px #000 solid;
 border-radius: 5vw;
}
登入後複製

JS程式碼

//获取应用实例
var app = getApp()

var interval;
var varName;
var ctx = wx.createCanvasContext(&#39;canvasArcCir&#39;);

Page({
 data: {
 },
 drawCircle: function () {
 clearInterval(varName);
 function drawArc(s, e) {
 ctx.setFillStyle(&#39;white&#39;);
 ctx.clearRect(0, 0, 200, 200);
 ctx.draw();
 var x = 100, y = 100, radius = 96;
 ctx.setLineWidth(5);
 ctx.setStrokeStyle(&#39;#d81e06&#39;);
 ctx.setLineCap(&#39;round&#39;);
 ctx.beginPath();
 ctx.arc(x, y, radius, s, e, false);
 ctx.stroke()
 ctx.draw()
 }
 var step = 1, startAngle = 1.5 * Math.PI, endAngle = 0;
 var animation_interval = 1000, n = 60;
 var animation = function () {
 if (step <= n) {
 endAngle = step * 2 * Math.PI / n + 1.5 * Math.PI;
 drawArc(startAngle, endAngle);
 step++;
 } else {
 clearInterval(varName);
 }
 };
 varName = setInterval(animation, animation_interval);
 },
 onReady: function () {
 //创建并返回绘图上下文context对象。
 var cxt_arc = wx.createCanvasContext(&#39;canvasCircle&#39;);
 cxt_arc.setLineWidth(6);
 cxt_arc.setStrokeStyle(&#39;#eaeaea&#39;);
 cxt_arc.setLineCap(&#39;round&#39;);
 cxt_arc.beginPath();
 cxt_arc.arc(100, 100, 96, 0, 2 * Math.PI, false);
 cxt_arc.stroke();
 cxt_arc.draw();
 },
 onLoad: function (options) {

 }
})
登入後複製

#注意的要點

1、關於小程式canvas繪製,請觀看微信小程式官方文件繪製

2、開始繪製的路徑可以根據JS程式碼中的變數startAngle 來選擇從哪裡開始繪製

#以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:

微信小程序 監聽手勢滑動切換頁面的實作

#微信小程式 圖片等比例縮放

微信小程式開發之跑步微信小程式

################################################### #####

以上是微信小程式實作即時圓形進度條的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!