js+css实现简单的canvas画板效果代码

代码语言:html

所属分类:其他

代码描述:js+css实现简单的canvas画板效果代码,可设置画笔颜色和笔触大小。

代码标签: js css 简单 canvas 画板

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh-CN">
	<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" />
<style>
    * {
	padding: 0;
	margin: 0;
}
body {
	display: flex;
	justify-content: center;
}
.options {
	display: flex;
	align-items: center;
	margin-top: 20px;
}
.options input {
	/* 清除input自带的轮廓 */
	outline: 0;
	margin-left: 20px;
}
.options button {
	/* 简单修饰一下按钮 */
	/* 同样清除轮廓 */
	outline: 0;
	/* 把边框也去掉 */
	border: 0;
	padding: 10px 20px;
	/* 加个圆角 */
	border-radius: 3px;
	color: #fff;
	background-color: #0d53ff;
	/* 鼠标移入变小手 */
	cursor: pointer;
}
/* 给画布一个边框 */
canvas {
	margin-top: 20px;
	border: 1px solid #000;
}

</style>
	</head>
	<body>
		<!-- 本期视频不写样式 只为实现最后的画图效果 -->
		<div class="container">
			<div class="options">
				<label>画笔颜色</label>
				<!-- value值可以设置默认的颜色 -->
				<input type="color" value="#7788ff" id="color" />
			</div>
			<div class="options">
				<label>画笔粗细</label>
				<!-- value同样设置默认的值 -->
				<!-- min为最小取值 -->
				<!-- max为最大取值 -->
				<input type="range" value="5" min="1" max="50" id="range" />
			</div>
			<div class="options">
				<button id="clear">清空画布</button>
			</div>
			<canvas width="1000" height="500"></canvas>
		</div>
		<script>
		    window.addEventListener("load", () => {
	// 获取颜色元素
	const color = document.querySelector("#color");
	// 获取range元素
	const range = document.querySelector("#range");
	// 设置初始的画笔颜色和粗细 画图时用的
	let colorValue = color.value,
		rangeValue = range.value;
	// 给颜色选择器加onchange事件 以此来更新颜色
	color.addEventListener("change", () => {
		// 变化之后就会改变value值
		colorValue = color.value;
	});
	// 同理来改变画笔粗细
	range.addEventListener("change", () => {
		rangeValue = range.value;
	});

	// ok现在开始画图了
	// 先获取画布
	const cvs = document.querySelector("canvas");
	// 再返回一个2d的绘图环境
	const ctx = cvs.getContext("2d");
	// 给画布添加鼠标按下事件
	let flag = false;
	cvs.addEventListener("mousedown", (e) => {
		// 按下之后让flag变成true
		flag = true;
		// 这里我们要获取鼠标的坐标来确定画布里面的初始位置
		// 先获取画布距离浏览器可视区的顶部和左部的大小
		// getB.........完整代码请登录后点击上方下载按钮下载查看

网友评论0