获取相对于元素的鼠标指针的x和y位置
问题描述:
您好任何人都可以帮忙吗?
当我移动元素的鼠标指针,我想取得相对<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;
}
感谢除林肯之外的所有人! !笑
答
你可以尝试这样的事情
function myOnMouseMove(element) {
var e = window.event
var relativeX = e.screenX - element.scrollLeft;
var relativeY = e.screenY - element.scrollTop;
}
答
这是为我工作:
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);
}
是jQuery的为您的选择,或者你需要一个纯JS的解决方案,不inculde框架? – meo 2010-09-29 14:07:43
感谢林肯对那些客气的话。 – 2010-09-29 14:35:13
示例我看到了倾向于使用以下来获取鼠标位置坐标var tempX = event.clientX + document.body.scrollLeft; var tempY = event.clientY + document.body.scrollTop; – 2010-09-29 14:35:45