<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<canvas id="canvas" width="500" height="500"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var rect1 = {
x:100,
y:100,
w:50,
h:50,
color:'palegreen'
}
var rect2 = {
x:200,
y:200,
w:100,
h:100,
color:'deeppink'
}
var rects = [rect1,rect2];
function drawRect(x,y){
for (var i = 0; i < rects.length; i++) {
ctx.beginPath();
ctx.fillStyle = rects[i].color;
ctx.rect(rects[i].x,rects[i].y,rects[i].w,rects[i].h);
ctx.fill();
if (ctx.isPointInPath(x,y)) {
var a = i;
}
}
return a;
}
drawRect();
canvas.onmousedown = function(){
var i = drawRect(event.clientX,event.clientY);
var disx = event.clientX - rects[i].x;
var disy = event.clientY - rects[i].y;
canvas.onmousemove = function(e){
var ev = e || window.event;
rects[i].x = ev.clientX - disx;
rects[i].y = ev.clientY - disy;
ctx.clearRect(0,0,canvas.width,canvas.height);
drawRect(ev.clientX,ev.clientY);
pengZhuang(rect1,rect2);
}
canvas.onmouseup = function(){
canvas.onmousemove = null;
}
}
function pengZhuang(obj1,obj2){
var disX = obj1.w / 2 + obj2.w / 2;
var disY = obj1.h / 2 + obj2.h / 2;
var X = Math.abs((obj1.x + obj1.w / 2) - (obj2.x + obj2.w / 2));
var Y = Math.abs((obj1.y + obj1.h / 2) - (obj2.y + obj2.h / 2));
if (X <= disX && Y <= disY) {
alert("撞上了");
}
}
</script>
</body>
</html>