继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

canvas简单画板

KenNaNa
关注TA
已关注
手记 63
粉丝 23
获赞 130
canvas画板是模拟鼠标在canvas画布上移动写字效果


通过获取鼠标的坐标值,


在通过canvas画布的画笔进行连接


<!DOCTYPE html>


<html>


<head>


	<meta charset="utf-8">


	<meta http-equiv="X-UA-Compatible" content="IE=edge">


	<title></title>


	<link rel="stylesheet" href="">


	<script src="jquery_1_12_4.js"></script>


</head>


<body>


	<canvas width="100%" height="100%"></canvas>


	<script>


		$(function(){


			var isDown = false;


			var canvas = $('canvas').get(0);


			canvas.height = $(window).height();


			canvas.width = $(window).width();



			var ctx = canvas.getContext('2d');


			ctx.strokeStyle = 'black';



			ctx.beginPath();


			$('body').mousedown(function(e){


				isDown = true;


				ctx.moveTo(e.clientX,e.clientY);


			}).mousemove(function(e){


				if(isDown){


					ctx.lineTo(e.clientX,e.clientY);


				}
				ctx.stroke();


			}).mouseup(function(){


				isDown = false;


			})


		})


	</script>


</body>


</html>


分析

var isDown = false; 默认鼠标松开


在默认情况下,鼠标为松开,当用户触发鼠标mousedown事件时

变量isDown变成true

并在画布上记录用户鼠标按下的位置的点


$('body').mousedown(function(e){


	isDown = true;


	ctx.moveTo(e.clientX,e.clientY);


})


为了实现只有鼠标按下时,并且拖动才能绘制图片,用户触发了鼠标事件

mousemove后,isDwon的状态必须为true才能绘制图


if(isDown){


	ctx.lineTo(e.clientX,e.clientY);


}


ctx.stroke();


最后,当用户松开鼠标时,isDwon状态恢复到初始状态

isDwon = false;


效果图

这下真的有点皮了哈


5b8774f100013ec206000320.jpg


来个gif图片吧


5b8774f10001c15406000286.jpg


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP