2010-09-29 208 views
0

您好任何人都可以帮忙吗?
当我移动元素的鼠标指针,我想取得相对<div>获取相对于元素的鼠标指针的x和y位置

例如x和y的位置 - 当我把鼠标指针在我预料到div的左上点获得1的X和1

这需要为Internet Explorer兼容

感谢所有为你的时间年。

这工作,麻烦是我从onclick事件调用它没有给scrollReft和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; 
} 

感谢除林肯之外的所有人! !笑

+0

是jQuery的为您的选择,或者你需要一个纯JS的解决方案,不inculde框架? – meo 2010-09-29 14:07:43

+0

感谢林肯对那些客气的话。 – 2010-09-29 14:35:13

+0

示例我看到了倾向于使用以下来获取鼠标位置坐标var tempX = event.clientX + document.body.scrollLeft; var tempY = event.clientY + document.body.scrollTop; – 2010-09-29 14:35:45

回答

0

你可以尝试这样的事情

function myOnMouseMove(element) { 
    var e = window.event 
    var relativeX = e.screenX - element.scrollLeft; 
    var relativeY = e.screenY - element.scrollTop; 
} 
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); 
} 
相关问题