提问人:Andrew G. Johnson 提问时间:3/3/2009 更新时间:6/10/2016 访问量:12334
可以使用 Javascript 获取当前的鼠标坐标吗?
Possible to get the current mouse coords with Javascript?
答:
0赞
schar
3/3/2009
#1
这是可以做到的。刚刚用谷歌搜索并得到了以下代码
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
0赞
Canavar
3/3/2009
#2
您可以像这样在浏览器中获取鼠标坐标。
6赞
Martin Janiczek
3/3/2009
#3
来源: http://javascript.internet.com/page-details/mouse-coordinates.html
<form name="Show">
X
<input type="text" name="MouseX" value="0" size="4">
<br>
Y
<input type="text" name="MouseY" value="0" size="4">
<br>
</form>
<script language="JavaScript">
var IE = document.all ? true : false;
if (!IE) {
document.captureEvents(Event.MOUSEMOVE)
}
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;
function getMouseXY(e) {
if (IE) {// grab the x-y pos.s if browser is IE
tempX = e.clientX + document.body.scrollLeft;
tempY = e.clientY + document.body.scrollTop;
} else {// grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}
if (tempX < 0) {
tempX = 0;
}
if (tempY < 0) {
tempY = 0;
}
document.Show.MouseX.value = tempX;
document.Show.MouseY.value = tempY;
return true;
}
</script>
1赞
user46665
3/3/2009
#4
这是一个带有演示的紧凑函数,它返回坐标为 .x 和 .y 的值:
function mouseCoords(ev){
// from http://www.webreference.com/programming/javascript/mk/column2/
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
(我发现 quirksmode 是 JavaScript 智慧的一个很好的资源。以下是该函数的一些背景,以防您想更深入地挖掘。
评论