ホームページ >ウェブフロントエンド >H5 チュートリアル >H5キャンバスサークルプログレスバーのサンプルコードを共有する

H5キャンバスサークルプログレスバーのサンプルコードを共有する

零下一度
零下一度オリジナル
2017-05-27 15:10:042532ブラウズ

h5 キャンバス サークル プログレス バーのサンプル コードを実装するためのアイデアはたくさんありますが、間違いなく Canvas を使用するのが最も便利な解決策です。具体的な実装手順は次のとおりです。 Paste_Image.png

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
    <title></title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
    </style>
    <!-- <script type="text/javascript" src="js/Progress.js"></script> -->
</head>
<body>
    <canvas id="canvas1"></canvas>
    <canvas id="canvas2"></canvas>
    <canvas id="canvas3"></canvas>

    <canvas id="canvas8"></canvas>
    <canvas id="canvas9"></canvas>
    <canvas id="canvas10"></canvas>

    <script type="text/javascript">
    window.onload = function(){
        new Progress().renderOne(&#39;canvas1&#39;,100,6,10);//id,画布宽和高,圆的半径 百分百。
        new Progress().renderOne(&#39;canvas2&#39;,100,5,20);
        new Progress().renderOne(&#39;canvas3&#39;,100,5,30);

        new Progress().renderOne(&#39;canvas8&#39;,100,5,80);
        new Progress().renderOne(&#39;canvas9&#39;,100,5,90);
        new Progress().renderOne(&#39;canvas10&#39;,100,5,100);
    }
    function Progress() {
    var progress = { textheight: null, renderOne: function(id, length, r, percent) {
            var canvas = document.getElementById(id);
            var context = canvas.getContext("2d");
            canvas.width = length;
            canvas.height = length;
            var i = 0;
            var interval = setInterval(function() { i++;
                progress.render(context, length, r, i, percent);
                if (i >= percent) { clearInterval(interval) } }, 10) }, render: function(context, length, r, i, percent) { context.clearRect(0, 0, length, length);
            context.beginPath();
            var gradient = context.createLinearGradient(length, 0, 0, 0);
            gradient.addColorStop("0", "#76EEC6");
            gradient.addColorStop("1.0", "#63B8FF");
            context.strokeStyle = gradient;
            context.lineWidth = r;
            context.arc(length / 2, length / 2, length / 2 - r, -0.5 * Math.PI, -0.5 * Math.PI + i * 0.02 * Math.PI, false);
            context.stroke();
            context.closePath();
            context.beginPath();
            context.strokeStyle = "#8d8d8d";
             context.strokeStyle =&#39;red&#39;;/////////////////////////////////////////////////
            context.lineWidth = 2;
            context.fillStyle = "#ffffff";
            context.arc(length / 2, r, 0.6 * r, 0, 2 * Math.PI, false);
            context.stroke();
            context.fill();
            context.closePath();
            context.beginPath();
            var radian = percent / 100 * 2 * Math.PI - 0.5 * Math.PI;
            var x = Math.cos(radian) * (length / 2 - r) + length / 2;
            var y = Math.sin(radian) * (length / 2 - r) + length / 2;
            context.arc(x, y, 0.6 * r, 0, 2 * Math.PI, false);
            context.stroke();
            context.fill();
            context.closePath();
            context.beginPath();
            context.lineWidth = 1;
            context.strokeStyle = "#54DDAF";
            context.fillStyle = "#54DDAF";
             context.fillStyle = "blue";///////////////////////////////////////
            context.arc(length / 2, length / 2, length / 2 - 2 * r, 0, 2 * Math.PI);
            context.fill();
            context.closePath();
            context.beginPath();
            context.font = "bold " + (length / 2 - 2.5 * r) / 2 + "px 微软雅黑";
            context.fillStyle = "#ffffff";
            var text = percent + "%";
            textwidth = context.measureText(text).width;
            if (this.textheight == null) {
                var p = document.createElement("p");
                document.body.appendChild(p);
                p.innerHTML = text;
                p.style.fontSize = ((length / 2 - 2.5 * r) / 2) + "px";
                this.textheight = p.offsetHeight;
                p.parentNode.removeChild(p) }
            textheight = this.textheight;
            context.fillText(text, (length - textwidth) / 2, length / 2 + textheight / 4);
            context.fill();
            context.closePath() } };
    return progress };



</script>
</body>
</html>

【関連する推奨事項】H5キャンバスサークルプログレスバーのサンプルコードを共有する
1.

H5 キャンバスは円形の動的読み込み進行状況の例を実装します

2.

キャンバスは円形の進行状況バーを実装し、デジタル パーセンテージを表示します

3.

HTML5 プログラミング

4.

coを使用して非同期処理を処理するミニプログラム開発のサンプルチュートリアル

5.

JS+canvasの簡単な円の描画方法_JavaScriptスキル

以上がH5キャンバスサークルプログレスバーのサンプルコードを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。