
吸使用以下几种方式获取:
1PageX/PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化
2clientX/clientY:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化
可是悲剧的是,PageX只有FF特有,IE这个悲剧没有啊T_T,所以大牛们想出了一个办法
PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同)
3screenX/screenY:鼠标在屏幕上的位置,从屏幕左上角开始(w3c标准)
4offsetX/offsetY:IE特有,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder,可能出现负值
5
layerX/layerY:FF特有,鼠标相比较于当前坐标系的位置,即如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有,将改变参考坐标系,从触发元素盒子模型的border区域的左上角为参考点也就是当触发元素设置了相对或者绝对定位后,layerX和offsetX就幸福地生活在一起^-^,几乎相等,唯一不同就是一个从border为参考点,一个以内容为参考点
chrome和safari一条龙通杀!完全支持所有属性其中(offsetX和layerX都是以border为参考点)
下面这个是获取相对于屏幕的坐标
documentonmousemove=function(e){e=e e:windowevent;documentwriteln("X:"+escreenX+"Y:"+escreenY);}
要做一个功能就是在一个div中选中一段文字,然后把选中的加个背景。
function getSelectedText() {
if (windowgetSelection) {
return windowgetSelection()toString();
}else if (documentgetSelection) {
return documentgetSelection();
}else if (documentselection) {
return documentselectioncreateRange()text;
}
}
function Test(){
var t=getSelectedText();
if(tlength>0){
var content=documentgetElementById('repFirstpage')innerHTML;
__global_notes__count++;
content=contentreplace(t,"<span style='background-color:#ff0000'><strong>["+__global_notes__count+"]</strong>"+t+"</span>"); documentgetElementById('repFirstpage')innerHTML=content;
$('#divNotes')show(100);
$("#txtNotes")select();
}
}
代码如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>获取鼠标在Canvas中的坐标位置</title>
<style>
#canvas{
border:1px solid #ccc;
width:300px;
height:300px;
overflow:hidden;
}
</style>
<script>
function get_canvas(ev,obj){
m_clientX = evclientX-objoffsetLeft;
m_clientY = evclientY-objoffsetTop;
documentgetElementById("tips")innerHTML = "当前坐标:X:"+ m_clientX + " ,Y:" +m_clientY;
}
</script>
</head>
<body>
<div id="tips"></div>
<div id="canvas" onmousemove="get_canvas(event,this)"></div>
</body>
</html>
兼容IE8+
用 javascript 获取当前页面上鼠标(光标)位置在许多情况下都会用到,比如拖放,悬停提示(tooltip) 等等。当然,这里我们依然要面对浏览器的兼容问题,在不同的浏览器下,对这些相关的属性处理方式也不同。
参考资料
首页 → 网络编程 → JavaScript → javascript技巧 → js获取鼠标位置实例详解脚本之家[引用时间2018-1-18]
用jquery库写就更简单呀,如这样:
$(function(){$('div#libox li')mouseover(function(){alert($(this)find('span')html());});
});
documentbodyonclick=function(){
var obj=documentelementFromPoint(eventclientX,eventclientY);
alert(objtagName)
}
IE chrome 兼容,火狐要兼容,我目前所知的办法非常复杂,也没有仔细研究过。
你可以去搜 索下 elementFromPoint这个火狐兼容的办法。
IE
左键是
windoweventbutton
=
1
右键是
windoweventbutton
=
2
中键是
windoweventbutton
=
4
没有按键动作windoweventbutton
=
0
Firefox
左键是
eventbutton
=
0
右键是
eventbutton
=
2
中键是
eventbutton
=
1
没有按键动作
eventbutton
=
0
Opera
723/754
鼠标左键是
windoweventbutton
=
1
没有按键动作
windoweventbutton
=
1
右键和中键无法获取
Opera
760/80
鼠标左键是
windoweventbutton
=
0
没有按键动作
windoweventbutton
=
0
右键和中键无法获取
另外:屏蔽右键的是windoweventbutton
=
3
Windowevent对象代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
Windowevent对象只在事件发生的过程中才有效。
Windowevent的某些属性只对特定的事件有意义。比如,fromElement
和
toElement
属性只对
onmouseover
和
onmouseout
事件有意义。
如果事件触发后,鼠标移出窗口外,则返回的值为
-1
,这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
Event对象的属性有:
altKey,
button,
cancelBubble,
clientX,
clientY,
ctrlKey,
fromElement,
keyCode,
offsetX,
offsetY,
propertyName,
returnValue,
screenX,
screenY,
shiftKey,
srcElement,
srcFilter,
toElement,
type,
x,
y
下面简单的描述一下它的这些属性:
1altKey
描述:
检查alt键的状态。
语法:
eventaltKey
可能的值:
当alt键按下时,值为
TRUE
,否则为
FALSE
。只读。
2button
描述:
检查按下的鼠标键。
语法:
eventbutton
可能的值:
0
没按键
;1
按左键
;2
按右键
;3
按左右键
;4
按中间键
;5
按左键和中间键
;6
按右键和中间键
;7
按所有的键
这个属性仅用于onmousedown,
onmouseup,
和
onmousemove
事件。对其他事件,不管鼠标状态如何,都返回
0(比如onclick)。
3cancelBubble
描述:
检测是否接受上层元素的事件的控制。
语法:
eventcancelBubble[
=
cancelBubble]
可能的值:
这是一个可读写的布尔值
TRUE
不被上层原素的事件控制。
FALSE
允许被上层元素的事件控制。这是默认值。
4clientX
描述:
返回鼠标在窗口客户区域中的X坐标。
语法:
eventclientX
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
5clientY
描述:
返回鼠标在窗口客户区域中的Y坐标。
语法:
eventclientY
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
6ctrlKey
描述:
检查ctrl键的状态。
语法:
eventctrlKey
可能的值:
当ctrl键按下时,值为
TRUE
,否则为
FALSE
。只读。
7fromElement
描述:
检测
onmouseover
和
onmouseout
事件发生时,鼠标所离开的元素。
参考18toElement
语法:
eventfromElement
注释:
这是个只读属性。
8keyCode
描述:检测键盘事件相对应的内码。
这个属性用于
onkeydown,
onkeyup,
和
onkeypress
事件。
语法:
eventkeyCode[
=
keyCode]
可能的值:
这是个可读写的值,可以是任何一个Unicode键盘内码。如果没有引发键盘事件,则该值为
0
。
9offsetX
描述:
检查相对于触发事件的对象,鼠标位置的水平坐标
语法:
eventoffsetX
10offsetY
描述:
检查相对于触发事件的对象,鼠标位置的垂直坐标
语法:
eventoffsetY
11propertyName
描述:
设置或返回元素的变化了的属性的名称。
语法:
eventpropertyName
[
=
sProperty
]
可能的值:
sProperty
是一个字符串,指定或返回触发事件的元素在事件中变化了的属性的名称。
注释:这个属性是可读写的。无默认值。你可以通过使用
onpropertychange
事件,得到
propertyName
的值。
12returnValue
描述:
设置或检查从事件中返回的值
语法:
eventreturnValue[
=
Boolean]
可能的值:
true
事件中的值被返回
false
源对象上事件的默认 *** 作被取消
13screenX
描述:
检测鼠标相对于用户屏幕的水平位置
语法:
eventscreenX
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
14screenY
描述:
检测鼠标相对于用户屏幕的垂直位置
语法:
eventscreenY
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
15shiftKey
描述:
检查shift键的状态。
语法:
eventshiftKey
可能的值:
当shift键按下时,值为
TRUE
,否则为
FALSE
。只读。
16srcElement
描述:
返回触发事件的元素。只读。例子见本文开头。
语法:
eventsrcElement
17srcFilter
描述:
返回触发
onfilterchange
事件的滤镜。只读。
语法:
eventsrcFilter
18toElement
描述:
检测
onmouseover
和
onmouseout
事件发生时,鼠标所进入的元素。
参考7fromElement
语法:
eventtoElement
注释:
这是个只读属性。
19type
描述:
返回事件名。
语法:
eventtype
注释:
返回没有“on”作为前缀的事件名,比如,onclick事件返回的type是click
只读。
20
x
描述:
返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。
语法:
eventx
注释:
如果事件触发后,鼠标移出窗口外,则返回的值为
-1
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
21
y
描述:
返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。
语法:
eventy
function fn1(obj){
var $li = $(obj)parent();
var spclass = $lidata("spclass");
}
<title>Js获取适时获取鼠标坐标值并显示</title>
<script type="text/javascript">
var getCoordInDocumentExample = function(){
var coords = documentgetElementById("coords");
coordsonmousemove = function(e){
var pointer = getCoordInDocument(e);
var coord = documentgetElementById("coord");
coordinnerHTML = "X,Y=("+pointerx+", "+pointery+")";
}
}
var getCoordInDocument = function(e) {
e = e || windowevent;
var x = epageX || (eclientX +
(documentdocumentElementscrollLeft
|| documentbodyscrollLeft));
var y= epageY || (eclientY +
(documentdocumentElementscrollTop
|| documentbodyscrollTop));
return {'x':x,'y':y};
}
windowonload = function(){
getCoordInDocumentExample();
};
</script>
<div id="coords" style="width:500px;height:200px;background:#F2F1D7;border:2px solid #0066cc;">
请在此移动鼠标。
</div>
<br />
<div id="coord" style="width:500px;border:2px solid #336699;"> </div>
以上就是关于js怎么获得鼠标当前坐标全部的内容,包括:js怎么获得鼠标当前坐标、js 如何获取鼠标选定的内容 好像这样的选定、js如何获取鼠标指针在元素中的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)