91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

H5中canvas如何繪制圓環百分比進度

發布時間:2021-09-13 17:04:19 來源:億速云 閱讀:314 作者:小新 欄目:web開發

這篇文章主要為大家展示了“H5中canvas如何繪制圓環百分比進度”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“H5中canvas如何繪制圓環百分比進度”這篇文章吧。

1.效果圖

H5中canvas如何繪制圓環百分比進度
2.原理
第一步繪制一個整圓顏色自定義,第二部繪制一個內圓,其半徑要小于外圓顏色自定
最后一步按照百分比繪制第三個圓,顏色自定。
要實現動態繪制第三步的效果,只要添加一個定時器的功能,每隔一段時間繪制一段距離,設定一個閥值
當大于這個閥值得時候就清空這個定時器,這個閥值其實就是要顯示的百分比值。每次繪制0.01.
注意:在定時器內繪制時,要把第二步繪制內圓,空白圓也在定時器中繪制。

3.知識點
繪制公式:arc(x, y, radius, startRad, endRad, anticlockwise)
在canvas畫布上繪制以坐標點(x,y)為圓心、半徑為radius的圓上的一段弧線。這段弧線的起始弧度是startRad,結束弧度是endRad。這里的弧度是以x軸正方向(時鐘三點鐘)為基準、進行順時針旋轉的角度來計算的。anticlockwise表示是以逆時針方向還是順時針方向開始繪制,如果為true則表示逆時針,如果為false則表示順時針。anticlockwise參數是可選的,默認為false,即順時針。

4.js源代碼

<script src="jquery.min.js"></script><script>function circleProgress(value,average){
    var canvas = document.getElementById("yuan");    var context = canvas.getContext('2d');    var _this = $(canvas),
    value= Number(value),// 當前百分比,數值
    average = Number(average),// 平均百分比
    color = "",// 進度條、文字樣式
    maxpercent = 100,//最大百分比,可設置
    c_width = _this.width(),// canvas,寬度
    c_height =_this.height();// canvas,高度
    // 判斷設置當前顯示顏色
    if( value== maxpercent ){
        color="#29c9ad";
    }else if( value> average ){
        color="#27b5ff";
    }else{
        color="#ff6100";
    }    // 清空畫布
    context.clearRect(0, 0, c_width, c_height);    // 畫初始圓
    context.beginPath();    // 將起始點移到canvas中心
    context.moveTo(c_width/2, c_height/2);    // 繪制一個中心點為(c_width/2, c_height/2),半徑為c_height/2,起始點0,終止點為Math.PI * 2的 整圓
    context.arc(c_width/2, c_height/2, c_height/2, 0, Math.PI * 2, false);
    context.closePath();
    context.fillStyle = '#ddd'; //填充顏色
    context.fill();    // 繪制內圓
    context.beginPath();
    context.strokeStyle = color;
    context.lineCap = 'square';
    context.closePath();
    context.fill();
    context.lineWidth = 10.0;//繪制內圓的線寬度

    function draw(cur){
        // 畫內部空白  
        context.beginPath();  
        context.moveTo(24, 24);  
        context.arc(c_width/2, c_height/2, c_height/2-10, 0, Math.PI * 2, true);  
        context.closePath();  
        context.fillStyle = 'rgba(255,255,255,1)';  // 填充內部顏色
        context.fill();        // 畫內圓
        context.beginPath();        // 繪制一個中心點為(c_width/2, c_height/2),半徑為c_height/2-5不與外圓重疊,
        // 起始點-(Math.PI/2),終止點為((Math.PI*2)*cur)-Math.PI/2的 整圓cur為每一次繪制的距離
        context.arc(c_width/2, c_height/2, c_height/2-5, -(Math.PI / 2), ((Math.PI * 2) * cur ) - Math.PI / 2, false);
        context.stroke();        //在中間寫字  
        context.font = "bold 18pt Arial";  // 字體大小,樣式
        context.fillStyle = color;  // 顏色
        context.textAlign = 'center';  // 位置
        context.textBaseline = 'middle';  
        context.moveTo(c_width/2, c_height/2);  // 文字填充位置
        context.fillText(value+"%", c_width/2, c_height/2-20);
        context.fillText("正確率", c_width/2, c_height/2+20);
    }    // 調用定時器實現動態效果
    var timer=null,n=0;    function loadCanvas(nowT){
        timer = setInterval(function(){
            if(n>nowT){
                clearInterval(timer);
            }else{
                draw(n);
                n += 0.01;
            }
        },15);
    }
    loadCanvas(value/100);
    timer=null;
}; 
</script>

最后需用調用circleProgress這個方法,并把相應的參數穿進去。博主是這樣寫的,通過點擊按鈕觸發。。。

<input onclick="circleProgress(10,50)" value="畫圓" type="button"><canvas id="yuan"></canvas>

以上是“H5中canvas如何繪制圓環百分比進度”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

卓资县| 新源县| 郑州市| 顺昌县| 苍溪县| 乐至县| 仁怀市| 成都市| 安陆市| 漠河县| 新和县| 青川县| 岱山县| 马边| 鱼台县| 乐安县| 双江| 浮山县| 沈丘县| 磐石市| 汉源县| 平谷区| 昌平区| 赤壁市| 鄄城县| 胶州市| 凭祥市| 丽江市| 百色市| 安西县| 丘北县| 海南省| 含山县| 连南| 永宁县| 邢台市| 麟游县| 日喀则市| 娄底市| 丰县| 江安县|