HTML 给canvas矩形添加监听事件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>给canvas矩阵添加事件</title>
<style>
    canvas{border:1px solid;}
</style>
</head>

<body>
    <canvas id="canvas" width=500 height=500 ></canvas>
    <button onclick="clears();" >清除</button>
</body>
<script>
    var canvas = document.getElementById("canvas");
	var ctx = canvas.getContext("2d");
	var x = 100, y = 100, w = 100, h = 100;
	
	run("red");
	
	// 生成矩阵
	function run(color){
		clears();
		ctx.fillStyle = color;
		ctx.fillRect(x, y, w, h);
	}
	// 清除画布
	function clears(){
		ctx.beginPath();
		ctx.clearRect(0, 0, 500, 500);
		ctx.closePath();
	}
	// 监听画布
	canvas.addEventListener("mousemove" , function(e){
		// 鼠标x轴 >= 矩阵x轴 && 鼠标x轴 <= 矩阵x轴 + 矩阵宽度
		// 鼠标y轴 >= 矩阵y轴 && 鼠标y轴 <= 矩阵y轴 + 矩阵高度
		if(e.layerX >= x && e.layerX <= x + w && e.layerY >= y && e.layerY <= y + h){
			run("black");
		}else{
			run("red");
		}
	});
</script>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值