Maison > interface Web > tutoriel CSS > Exemple détaillé de barre de progression implémentant une forme circulaire et affichant un pourcentage dans HTML5 Canvas

Exemple détaillé de barre de progression implémentant une forme circulaire et affichant un pourcentage dans HTML5 Canvas

巴扎黑
Libérer: 2017-08-22 17:27:20
original
3381 Les gens l'ont consulté

Cet article présente principalement le canevas HTML5 pour implémenter la barre de progression circulaire et affiche l'exemple d'effet de pourcentage numérique. Il a une certaine valeur de référence. Ceux qui sont intéressés peuvent en apprendre davantage

Cet article présente le canevas HTML5. pour mettre en œuvre la progression circulaire. Barres et affiche des exemples d'effets de pourcentage numériques, comme suit :

Obtention de l'effet

1. Créez d'abord le code html <.>


<canvas id="canvas" width="500" height="500" style="background:#000;"></canvas>
Copier après la connexion
2. Créez un environnement de toile


var canvas = document.getElementById(&#39;canvas&#39;),  //获取canvas元素
            context = canvas.getContext(&#39;2d&#39;),  //获取画图环境,指明为2d
            centerX = canvas.width/2,   //Canvas中心点x轴坐标
            centerY = canvas.height/2,  //Canvas中心点y轴坐标
            rad = Math.PI*2/100, //将360度分成100份,那么每一份就是rad度
            speed = 0.1; //加载的快慢就靠它了
Copier après la connexion
3. Dessinez un cercle extérieur de mouvement de 5 pixels de large.


//绘制5像素宽的运动外圈
        function blueCircle(n){
            context.save();
            context.strokeStyle = "#fff"; //设置描边样式
            context.lineWidth = 5; //设置线宽
            context.beginPath(); //路径开始
            context.arc(centerX, centerY, 100 , -Math.PI/2, -Math.PI/2 +n*rad, false); //用于绘制圆弧context.arc(x坐标,y坐标,半径,起始角度,终止角度,顺时针/逆时针)
            context.stroke(); //绘制
            context.closePath(); //路径结束
            context.restore();
        }
Copier après la connexion
4. Dessinez un cercle extérieur blanc


//绘制白色外圈
        function whiteCircle(){
            context.save();
            context.beginPath();
            context.lineWidth = 2; //设置线宽
            context.strokeStyle = "red";
            context.arc(centerX, centerY, 100 , 0, Math.PI*2, false);
            context.stroke();
            context.closePath();
            context.restore();
        }
Copier après la connexion
5. Dessinez un texte en pourcentage


function text(n){
            context.save(); //save和restore可以保证样式属性只运用于该段canvas元素
            context.strokeStyle = "#fff"; //设置描边样式
            context.font = "40px Arial"; //设置字体大小和字体
            //绘制字体,并且指定位置
            context.strokeText(n.toFixed(0)+"%", centerX-25, centerY+10);
            context.stroke(); //执行绘制
            context.restore();
        }
Copier après la connexion
6. Faites-le bouger


//动画循环
        (function drawFrame(){
            window.requestAnimationFrame(drawFrame);
            context.clearRect(0, 0, canvas.width, canvas.height);
            whiteCircle();
            text(speed);
            blueCircle(speed);
            if(speed > 100) speed = 0;
            speed += 0.1;
        }());
Copier après la connexion
Code complet


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal