获取鼠标指针相对于元素的x和y位置

时间:2010-09-29 13:45:05

标签: javascript html internet-explorer

你们可以帮忙吗? 当我移动元素的鼠标指针时,我想检索相对于<div>的x和y位置

例如 - 当我将鼠标指针放在div的左上角时,我希望得到的X为1,Y为1。

这需要兼容Internet Explorer

谢谢大家的时间。

这很有效,麻烦的是我从onclick事件中调用它而没有给出scrollLeft和scrollTop值。我应该能够通过使用Divs顶部和左侧值的计算来获得该位置。

function getMouseXY(ctrl)        
{
    var tempX = event.clientX + document.body.scrollLeft;
    var tempY = event.clientY + document.body.scrollTop;

    document.getElementById('<%=txtXPos.ClientID%>').value = tempX;
    document.getElementById('<%=txtXPos.ClientID%>').value = tempY;
}

感谢林肯的所有人! !洛尔

2 个答案:

答案 0 :(得分:0)

你可以试试这样的事情

function myOnMouseMove(element) {
  var e = window.event
  var relativeX = e.screenX - element.scrollLeft;
  var relativeY = e.screenY - element.scrollTop;
}

答案 1 :(得分:0)

这对我有用:

function getOffset( el ) 
{
    var _x = 0;
    var _y = 0;
    while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) 
    {
        _x += el.offsetLeft - el.scrollLeft;
        _y += el.offsetTop - el.scrollTop;
        el = el.offsetParent;
    }
    return { top: _y, left: _x };
}
var x = getOffset( document.getElementById('MY DIV ID') ).left;
var Y = getOffset( document.getElementById('MY DIV ID') ).top;

function myOnYourEvent()
{
    var relativeX = window.event.clientX;
    var relativeY = window.event.clientY;
    var my_div_x = relativeX - x;
    var my_div_y = relativeY - Y;
    alert(my_div_x  + " " + my_div_y);
}