canvas半圆形进度条,canvas圆形进度条动画
前提:有时候在项目中会有用到进度条的情况,使用css3也可以实现,但是对于性能不好的设备,或者网络不好的情况下,卡顿现象非常明显,避免出现不流畅的尴尬情况,所以记录一下,使用帆布来实现的方法。
效果图
数字正射影像图中,首先定义帆布画板元素:
canvas id= canvas width= 500 height= 500 style= background:# f7f 7;p您的浏览器不支持画布!p/画布对于不支持帆布的浏览器则会显示:您的浏览器不支持画布!
接下来是射流研究…编写:
定义画布。射流研究…并在页面引入
var canvas=文档。getelementbyid( canvas ),//获取帆布元素context=canvas.getContext(2d ),//获取画图环境,指明为2d centex=画布。宽度/2,//画布中心点x轴坐标centerY=canvas.height/2,//Canvas中心点y轴坐标弧度=数学。* 2/100,//将360度分成100份,那么每一份就是拉德度速度=0.1;//加载的快慢就靠它了//绘制蓝色外圈函数蓝色圆圈(n){上下文。save();语境。begin path();context . stroke style= # 49 context . line width=12 context。arc(centex,centerY,100,-数学/2,-.数学. PI/2 n * rad,false);语境。笔画();语境。restore();}//绘制白色外圈函数白圈(){ context。save();语境。begin path();语境。笔画样式= # a5 def 1context.lineWidth=12context上下文。arc(centex,centerY,100,0,Math .PI * 2,假);语境。笔画();语境。关闭路径();语境。restore();}//百分比文字绘制函数文本(n){上下文。save();语境。填充样式= # f47c 7ccontext . font= 40px arial context . text align= center context . text baseline= middle context。填充文本(n .到fixed(0) % ,centerX,centey);语境。restore();}//动画循环(函数绘制frame(){ window。requestanimationframe(画框、画布));context.clearRect(0,0,canvas.width,canvas。身高);白圈();文字(速度);蓝色圆圈(速度);如果(速度100)速度=0;速度=0.1;}());窗户。requestanimationframe(画框、画布);每行代码的注释标注非常清楚,如果还有不理解的可以去看帆布基础,应该就可以了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。