JS:相对于元素的鼠标坐标

时间:2009-11-29 09:38:31

标签: javascript cross-browser

是否跨浏览器捕获相对于div框的鼠标坐标:

pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("thebox").offsetLeft;
pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("thebox").offsetTop;

3 个答案:

答案 0 :(得分:0)

这对我有用;改变你的框架:

function assignPosition(element,event) {
cX=event.clientX; cY=event.clientY;
if ($$(element).pageYOffset)
   {
   rX=$$(element).pageXOffset;
   rY=$$(element).pageYOffset;
   }
if (document.body)
   {
   rX=document.body.scrollLeft;
   rY=document.body.scrollTop;
   }
if (document.documentElement && document.documentElement.scrollTop)
   {
   rX=document.documentElement.scrollLeft;
   rY=document.documentElement.scrollTop;
   }
cX+=rX;
cY+=rY;
$$(element).style.left=cX+"px";
$$(element).style.top=cY+"px";
}

答案 1 :(得分:0)

如果您没有要测试的所有/大多数浏览器类型/版本,您可以看一下:
W3C DOM Compatibility - Events
从上面链接:W3C DOM Compatibility - CSS Object Model View

让您了解代码的兼容性。

答案 2 :(得分:0)

function dodoubleclick(e){
             var mouseX, mouseY;

                if(e.offsetX) {
                    mouseX = e.offsetX;
                    mouseY = e.offsetY;
                }
                else if(e.layerX) {
                    mouseX = e.layerX;
                    mouseY = e.layerY;
                }
alert("mousex:"+mouseX+"and"+"mousey:"+mouseY);

}

此代码段将为您提供鼠标坐标