js怎么获得鼠标当前坐标

js怎么获得鼠标当前坐标,第1张

吸使用以下几种方式获取:

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如何获取鼠标指针在元素中的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9433168.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存