1、在HTML5中画布的使用需要配合js使用,在HTML中画布的标签是canvas
<canvas id="canvas" width="500" height="500"></canvas>
<!-- 有一些比较老版的浏览器识别不了画布,所以我们一般加上 -->
<canvas id="canvas" width="500" height="500">你的浏览器不支持画布</canvas>2、js中使用画布需要7个步骤:
- 1.获取一个画布(要创建一个画布对象)
- 2.创建一个画布上下文对象
- 3.告诉程序绘画路径开始(可省略)
4.绘制图形的起始点(一般都是坐标)
5.绘制图形的连接点
6.设置图形的样式
7.描边(设置图形的边框)
如下是一个简单的三角形:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 有一些比较老版的浏览器识别不了画布,所以我们一般加上 -->
<canvas id="canvas" width="500" height="500">你的浏览器不支持画布</canvas>
</body>
<script type="text/javascript">
//1.获取一个画布(要创建一个画布对象)
var canvas = document.getElementById("canvas");
//2.创建一个画布上下文对象
var context = canvas.getContext("2d")
//3.告诉程序绘画路径开始
context.beginPath();
//4.绘制图形的起始点(坐标)
context.moveTo(0, 0);
//5.绘制图形的连接点(结束)
context.lineTo(0, 300);
context.lineTo(400, 300);
context.lineTo(0, 0);
//6.设置图形的样式
context.strokeStyle = "red"
//7.描边
context.stroke()
//填充颜色
// context.fillStyle = "red"; //填充的颜色
//context.fill(); //填充
//设置线的粗细
context.lineWidth = 30;
</script>
</html>效果:

补充:
1.给整个三角形填充的颜色使用context.fillStyle = "color",这个只是想要填充的颜色,想要填充需要配合 context.fill();使用但是如果 context.fill()在前可能会没有颜色效果
context.fill()在下的效果(代码参考上面的↑):

context.fill()在下的效果(代码参考上面的↑):

2. context.closePath();是闭合的意思他可以自动闭合,就比如上面的三角形我用的 是 context.lineTo(0, 0);(坐标)写的,而他可以完全用context.closePath()代替
//其他代码及效果图与第一个一样
context.lineTo(0, 300);
context.lineTo(400, 300);
// context.lineTo(0, 0);
context.closePath(); //闭合3、使用画图画虚线(3种方法)
1.画三角形就是使用直线做出来的,画虚线只不过是改他的坐标而已
如下段代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<canvas id="canvas" width="500" height="500">你的浏览器等级太低,请升级</canvas>
</body>
<script>
//1.获取一个画布(创建一个画布对象)
var canvas = document.getElementById("canvas");
//2.创建一个画布上下文
var context = canvas.getContext("2d");
//3.开始路径(可省略)
context.beginPath();
//4.设置起始点
context.moveTo(0, 0)
context.lineTo(5, 0)
context.moveTo(10, 0)
context.lineTo(15, 0)
context.moveTo(20, 0)
context.lineTo(25, 0)
context.moveTo(30, 0)
context.lineTo(35, 0)
//设置样式
context.lineWidth = 5;
//描边
context.stroke()
</script>
</html>效果:

2.第一种方式虽然可以做出虚线但是太过繁琐,我们都知道js循环既然他们都是用坐标,那我们就完全可以使用循环做,我们只需要更改一下坐标而已,而且使用循环代码会更简洁
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<canvas id="canvas" width="500" height="500">你的浏览器等级太低,请升级</canvas>
</body>
<script>
//1.获取一个画布(创建一个画布对象)
var canvas = document.getElementById("canvas");
//2.创建一个画布上下文
var context = canvas.getContext("2d");
//使用循环:做重复的事
for (var i = 0; i < 50; i++) {
context.beginPath();
context.moveTo(10 * i, 0);
context.lineTo(10 * i + 5, 0);
context.closePath();
//设置样式
context.lineWidth = 5;
//描边
context.stroke()
}
</script>
</html>效果:

3.其实他们有给封装了一个函数就是setLineDash()这个函数只需要添加参数即可
setLineDash()三个参数
第一个是虚线小段的长度,第二个是虚线的间隔,第三个是第二段虚线的长度,第四个是第二段虚线后边的间隔
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<canvas id="canvas" width="500" height="500">你的浏览器等级太低,</canvas>
</body>
<script>
//1.获取一个画布(创建一个画布对象)
var canvas = document.getElementById("canvas");
//2.创建一个画布上下文
var context = canvas.getContext("2d");
//3.开始路径(可省略)
context.beginPath();
context.setLineDash([10, 10]);
context.moveTo(0, 0)
context.lineTo(200, 0)
context.lineWidth = 5;
context.stroke()
</script>
</html>效果:

补充:
context.lineWidth = 数值; 设置线的粗细,设置的效果如上图
没有设置的效果:
![]()
版权声明:本文为sh2001824原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。