日期:2014-05-16  浏览次数:20359 次

怎样用js判断当前鼠标是否在对象内?
求一个函数,大概像这个样子
function mouseInObj(obj)
传入一个对象参数进去,然后判断当前鼠标是否在这个对象内部,返回true或者false
比如,传入一个<table>进去,可以判断当前鼠标是不是在这个table里面
难点就是,我不知道怎么获得对象的高度,宽度...
请大家帮帮忙

------解决方案--------------------

function isMouseInBox(event,obj){ 
 event=event||window.event;
 var point1=new Array(event.clientX+document.body.scrollLeft,event.clientY+document.body.scrollTop); 
 var point2=getObjPosition(obj); 
 return( (point1[0]>=point2[0]) && point1[1]>=point2[1] && point1[0]-point2[0]<=obj.offsetWidth && point1[1]-point2[1]<=obj.offsetHeight );

function getObjPosition(obj){ 
 var point=new Array(0,0); 
 while(obj!=document.body){
point[0]+=obj.offsetLeft;
point[1]+=obj.offsetTop;
obj=obj.offsetParent;
 }
 return point;
}