キャンバス上に円形のプログレスバーアニメーションを実装する方法の例

小云云
リリース: 2017-12-27 14:42:14
オリジナル
2367 人が閲覧しました

この記事では、キャンバスで円形のプログレスバーアニメーションを実現するための関連情報を中心に紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターをフォローして見てみましょう

この記事では、キャンバス上の円形のプログレスバーアニメーションの実装を紹介し、それを皆さんと共有します。詳細は次のとおりです。

最初にレンダリングを示し、その後コードを追加します。

プログレスバーアニメーション

1. キャンバスの HTML 部分は非常に単純で、単なる Canvas タグです

キャンバスの幅と高さはインターラインで設定する必要があります。 style で幅と高さを設定すると、描いた絵が変形します。


<canvas id="mycanvas" width="100" height="100">
70%
</canvas>
ログイン後にコピー

2. キャンバスの js コード

主なアイデア: レンダリングは 3 つの円で構成されており、最も外側のレイヤーは黒い枠線があり、その中に変化する円があります。進行状況バーの進行状況を示すパーセント円。

注: 円を描くたびに、新しいレイヤーを作成する必要があります。この方法では、PS のレイヤーと同様に、複数のレイヤーで構成され、各レイヤーのスタイルを個別に設定できます。の。


var canvas = document.getElementById("mycanvas");
var context = canvas.getContext("2d");
function draw(i){
// 大圆框
context.beginPath();
context.lineWidth = 1;
context.arc(50,50,46,0,Math.PI*2);
context.strokeStyle = "grey";
context.stroke();
// 大圆
context.beginPath();
var grd = context.createLinearGradient(15,15,80,80);
grd.addColorStop(0,"red");
grd.addColorStop(0.5,"yellow");
grd.addColorStop(1,"blue");
context.arc(50,50,38,0,Math.PI*2*(i/100));
context.lineWidth = 16;
context.strokeStyle = grd;
context.stroke();
// context.fillStyle = grd;
// context.fill();
// 小圆
context.beginPath();
context.arc(50,50,30,0,Math.PI*2);
context.lineWidth = 1;
context.strokeStyle = "grey";
context.stroke();
context.fillStyle = "white";
context.fill();
// 字
context.beginPath();
context.textBaseline = "middle";
context.textAlign = "center";
context.font = "20px Arial";
context.fillStyle = "black";
context.fillText(i+"%",50,50);
}
ログイン後にコピー

3. タイマーを使用してキャンバスを更新し、進行状況バーの効果を実現します

context.clearRect() メソッドを使用してキャンバスをクリアします


var i = 0;
var progress = parseInt(canvas.innerHTML);
// console.log(progress);
var timer = setInterval(function(){
if(i >= progress){
clearInterval(timer);
}
context.clearRect(0,0,canvas.width,canvas.height);
draw(i);
i++;
},50);
ログイン後にコピー

関連する推奨事項:

css3実装 円形プログレスバーの作り方

WeChatアプレットで円形プログレスバーを実現する方法の紹介

円形プログレスバーのおすすめ基本入門チュートリアル

以上がキャンバス上に円形のプログレスバーアニメーションを実装する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート