画布做加载动画!

html

<html>
    <head>
    <meta charset='UTF-8'>
    <script src="http://www.oxcoder.com/sys/js/libs/jquery-1.11.0.min.js"></script>
    </head>
    <body>
        <canvas id='canvas'></canvas>
    </body>
</html>

js

<script>
    (function(){
    var canvas=$('canvas');//获取画布标签
    var cav=canvas.getContext('2d');//设置画布2维场景
    var num=0;//声明角度控制器变量
    //现在我们用定时器来启动咱们的程序,查看效果
    setInterval(function(){
        num++;
        //因为我把圆 360度分成了 100份,也是方便计算,所以只需要判断它是否大于 100
        if(num>100){
            num=0;
        }
        jindutiao(canvas,cav,100,100,50,50,40,num);
    },100)
})()
/*参数,
canvas 表示html 的画布对象,
cav  表示画布场景对象,
width  表示你要设置的画布的宽度,
height  表示你要设置的画布高度,
x  表示你要绘制的圆心在画布的横向座标值,
y  表示你要绘制的圆心在画布的纵向座标值,
r  表示你要绘制的圆的半径,
move_r  加载进度的角度*/
function  jindutiao(canvas,cav,width,height,x,y,r,move_r){
canvas.setAttribute('width',width);//设置画布宽度
canvas.setAttribute('height',height);//设置画布高度
cav.clearRect(0,0,canvas.Width,canvas.Height);//清楚画布,从新绘制
//绘制动画路径
cav.beginPath();
cav.lineWidth=10;//设置当前路径的宽度(粗细)
cav.strokeStyle='#cccccc';//设置笔触颜色
//arc()方法创建弧/曲线(用于创建圆或部分圆),参数分别是(圆心X座标,圆心Y座标,半径,圆的开始角度,圆的结束角度)
cav.arc(x,y,r,0,2*Math.PI);
cav.stroke();//绘制
//绘制加载进度
cav.beginPath();
cav.lineWidth=10;
cav.strokeStyle='red';
cav.arc(x,y,r,-90*Math.PI/180,(move_r*3.6-90)*Math.PI/180);
cav.stroke();
//绘制进度提示文字
cav.font='20px Arial';
cav.fillStyle='#747474';
cav.textBaseline='middle';
cav.textAlign='center';
cav.fillText(move_r+'%',x,y);
}

</script>

这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章