这个原理跟拖动的原理很接近,关键是在 mousemove 事件中不断更新获取 a 元素的新坐标,同时判断其是否进入 b 元素的区域范围内,b 区域判断根据是 以 b 元素的左上角X,Y坐标和 b 元素的宽高共同定义的,即 b 元素的 X坐标加上 b 元素的宽度,Y 坐标加上 b 元素的高度即可得到 b 元素的区域,即如下(以下是大致的思路代码,具体写时自己看情况可能适当改变):var objB_x = objB.X坐标; var objB_y = objB.Y坐标; var rectB_width = objB_x + objB.width; var rectB_height = objB_y + objB.height; a 的坐标在 mousemove 事件中不断更新获取,如下:var objA_x=objA.X坐标; //objA.offsetLeft or objA.style.left; //看情况取哪个方法求值自己定 var objA_y=objA.Y坐标; //objA.offsetTop or objA.style.top; //看情况取哪个方法求值自己定判断 a 元素是否已经进入 b 元素的区域范围内if (objA_x > objB_x && objA_x < rectB_width && objA_y > objB_y && objA_y < rectB_height){ alert(" a 元素已经进入 B 元素的区域范围内了。"); //...其他操作... }在 mousedown 和 mouseup 事件中完成其他辅助代码自己补充上....
这个原理跟拖动的原理很接近,关键是在 mousemove 事件中不断更新获取 a 元素的新坐标,同时判断其是否进入 b 元素的区域范围内,b 区域判断根据是 以 b 元素的左上角X,Y坐标和 b 元素的宽高共同定义的,即 b 元素的 X坐标加上 b 元素的宽度,Y 坐标加上 b 元素的高度即可得到 b 元素的区域,即如下(以下是大致的思路代码,具体写时自己看情况可能适当改变):var objB_x = objB.X坐标;
var objB_y = objB.Y坐标;
var rectB_width = objB_x + objB.width;
var rectB_height = objB_y + objB.height;
a 的坐标在 mousemove 事件中不断更新获取,如下:var objA_x=objA.X坐标; //objA.offsetLeft or objA.style.left; //看情况取哪个方法求值自己定
var objA_y=objA.Y坐标; //objA.offsetTop or objA.style.top; //看情况取哪个方法求值自己定判断 a 元素是否已经进入 b 元素的区域范围内if (objA_x > objB_x && objA_x < rectB_width && objA_y > objB_y && objA_y < rectB_height){
alert(" a 元素已经进入 B 元素的区域范围内了。");
//...其他操作...
}在 mousedown 和 mouseup 事件中完成其他辅助代码自己补充上....
还是,只要相交 就算进入? 规则不同,判断就不同!