Canvas之进度条的制作(矩形,圆环)

Canvas之进度条的绘制

基本进度条的绘制

1.矩形进度条

关键语法

  1. 获取画笔

    var ctx=document.getElementById(“id”).getContext(“2d”);

  2. 填充颜色

    ctx.fillStytle=“color”;

  3. setInternal()和clearInternal()的使用

代码(两种类型):

`

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>矩形进度条搭建</title>
		<style>
			body{
				text-align: center;
			}
canvas{
			background-color: lightblue;
		}
	</style>
</head>
<body>
	<h1>进度条的世界</h1>
	<canvas id="c4" width="500" height="400">
		
	</canvas>
	
	<script>
		<!-- 矩形进度条 -->
		var ctx=document.getElementById("c4").getContext("2d");  //画笔
		
		var x=100;
		var y=180;
		var xMove=1;
		
		var process=setInterval(function(){
			ctx.clearRect(0,180,400,20);   //擦掉重新绘制
			ctx.fillStyle="darkgrey";      //填充颜色
			ctx.fillRect(100,180,300,20);  //填充矩形
			ctx.fillStyle="green";
			if(x<=400-30)
			{
				ctx.fillRect(x,y,30,20);
				x+=xMove*30;
			}
			else   //两种其中加载完毕模式,我进行了注释,需要尝试的可自己引用
			{
				x=100;               //重新开始进度条
				
				// 加载完毕模式
				// clearInterval(process);
				// ctx.clearRect(0,180,400,20);
				// alert("加载完毕!");
	
			}
		},200)
	</script>
</body>
</html>`

运行结果:

给你看点好看的东西哈哈,一个视频来看结果:

https://www.bilibili.com/video/BV1AQ4y1o7TM

2.圆形进度条的绘制

关键语法

  1. 获取画笔

var ctx=document.getEelementById(“id”).getContext(“2d”);

  1. 设置画笔宽度(圆环形需要,扇形需要)

ctx.lineWidth=20(根据需要自己设置);

  1. 分别设置两个圆环,第一个颜色为转动的进度条的颜色,第二个颜色为总进度条的背景色,根据下面语法自己计算度数绘画。

    context.arc(x,y,r,sAngle,eAngle,counterclockwise)
    

参数表

度数计算(注意开始角的位置):

度数计算

案例代码:

1.圆环形(两种)

`

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>圆形进度条的绘制</title>
		<style>
			body{
				text-align: center;
			}		
          canvas{
			background-color: lightblue;
		}
	</style>
</head>
<body>
	<h1>圆形进度条</h1>
	<canvas id="c5" width="500" height="400">
		
	</canvas>
	
	<script>
		var  ctx=document.getElementById("c5").getContext("2d");   //获取画笔
        ctx.lineWidth="20";       //调节画笔宽度(即圆环粗细)
		var degree=360;
        
		var process=setInterval(function(){
			ctx.clearRect(0,0,500,400);    //擦掉,重新绘制
			//用设计的底色圆环
			ctx.strokeStyle="darkgreen";
			ctx.beginPath();
			ctx.arc(250,200,100,0,2*Math.PI);     //画圆
			ctx.stroke();                        
			
			//第二个圆环
			if(degree>=0)
			{
				ctx.strokeStyle="darkgrey";      //描边底色
				ctx.beginPath();
				ctx.arc(250,200,100,3*Math.PI/2,degree/360*Math.PI*2-Math.PI/2);
				ctx.stroke();
				degree-=3;
			}
			else
			{
				//循环加载
				degree=360;
				
				//一次加载完毕
				clearInterval(process);     //结束循环
				alert("加载完毕!");
				ctx.clearRect(0,0,500,400);
				
			}
		},200)
	</script>
</body>
</html>`

运行结果(一个简短视频先瞅瞅):

视频链接源地址(欢迎点赞哦绘哈哈):

是循环不止,还是踏出迷雾

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值