`
xiaozhi7616
  • 浏览: 195873 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转]分析x,offsetX clientX screenX,pageX,y,offsetY clientY screenY,pageY之间的区别

阅读更多

先运行附件中的例子,仔细体会一下例子:

1.IE的x,y:设置或获取鼠标指针位置(触发的节点testid1),到ID为testid的父节点外边界的距离,其中不包括滚动条

显示IE的x坐标:

显示IE的y坐标:

注意:IE的x,y坐标不包括滚动距离scrollLeft,scrollTop,可见区域

2.ff的pageX: 设置或获取鼠标指针位置(触发的节点testid1),到页面文档的距离(包括滚动距离)以文档左上角为参考点,不是以浏览器左上角为参考点
兼容IE:event.clientX + document.body.scrollLeft==pageX

显示ff的pageX:

显示ff的pageY:

3. clientX  设置或获取鼠标指针位置(触发的节点testid1)到浏览器的距离(不包括滚动距离) 以浏览器左上角为参考点

显示clientX:

显示clientY:

4.  设置或获取鼠标指针位置(触发的节点testid1)到自身节点(testid1)的内边界的距离(包括滚动距离即不可见区域)

显示offsetX或ff的layerX:

显示offsetY或ff的layerY:

5. screenX,screenY  设置或获取鼠标指针位置(触发的节点testid1)到屏幕的距离

显示screenX:

显示screenY:

  总结一句话:坐标就是搞清楚以什么为参考点
    1. ie的x,y是以事件触发元素的父元素外界为参考点(不包括滚动距离)
    2. FF的pageX,pageY是以body元素为参考点(所以肯定包括滚动距离)
    3. ie和ff的clientX,clientY以浏览器左上角为参考点(所以肯定不包括滚动距离)
    4. ie的offsetX,offsetY和ff的layerX,layerY以事件触发元素内界的左上角为参考点(肯定包括滚动距离)    当有边框时,可能出现负数    
    滚动距离的产生就是子元素的高度(或宽度)大于父元素的高度(或宽度)时 style.overflow的设置

 

 

 

本文转自:http://www.eyejs.com/html/16/n-16.html

 

 

 

 

分享到:
评论

相关推荐

    鼠标事件clientX、clientY

    clientX、clientY、pageX、pageY、screenX、screenY、offsetX、offsetY

    JS中坐标表示方法的异同

    本文将详细介绍`clientX`、`screenX`、`pageX`、`offsetX`等坐标系统的概念及其差异,并通过实例来帮助理解这些概念。 #### 二、`pageX`与`pageY` **定义:** `pageX`与`pageY`表示鼠标相对于整个文档的X轴和Y轴的...

    JavaScript第九天.xmind

    4.offsetX,offsetY(鼠标相对于事件源元素的x,y坐标) 元素的offset属性: 1.offsetTop: 元素相对父元素上边的偏移。(只读) 2.offsetLeft: 元素相对父元素左边的偏移。(只读) 3.offsetWidth: 自身包括padding...

    vue实现拖拽效果

    首先要搞明白分清clientY pageY screenY layerY offsetY的区别 作用3(事件对象中记录的鼠标位置) 语法 解释 evt.screenX 相对于屏幕的左上角为原点 evt.screenY evt.clientX 相对于浏览器的客户端左上角为原点...

    event对象总结,更详细更全面

    * clientX和clientY:事件发生时鼠标相对于浏览器左上角的X/Y坐标 * screenX和screenY:事件发生时鼠标相对于显示器左上角的X/Y坐标 事件对象的方法 事件对象还拥有一些重要的方法,例如: * stopPropagation():...

    Javascript dom位置、大小、鼠标定位操作

    理解这些属性之间的差异至关重要,例如,`event.clientX` 和 `event.clientY` 是相对于窗口的,而`event.pageX` 和 `event.pageY` 则是相对于整个文档的。`event.offsetX` 和 `event.offsetY` 是相对于元素的可见...

    javascript 事件对象 坐标事件说明

    例如,`event.offsetX/Y`、`event.layerX/Y`、`event.x/y` 和 `event.pageX/pageY` 在某些情况下可能提供相同的信息,但它们在不同浏览器中的行为并不一致。在编写兼容性良好的 JavaScript 代码时,开发者通常需要...

    JavaScript中获取鼠标位置相关属性总结

    在现代浏览器中,推荐使用clientX和clientY来获取鼠标在视窗内的位置,使用pageX和pageY来获取鼠标在整个文档中的位置,而对于IE9及更新的浏览器,layerX和layerY是替代offsetX和offsetY的不错选择。在设计跨浏览器...

    显示鼠标坐标信息 JavaScript代码

    - **offsetX/offsetY**:这两个属性返回鼠标相对于元素边框的左上角的水平和垂直距离,如果事件发生在body元素上,则与clientX/clientY相同。 - **pageX/pageY**:这两个属性返回鼠标相对于整个页面(包括滚动条)...

    【JavaScript源代码】JavaScript 鼠标事件(MouseEvent)案例讲解.docx

    - `offsetX`、`offsetY`:这两个属性提供了鼠标相对于事件源元素的位置坐标,即鼠标在元素内的位置。 - `clientX`、`clientY`:这两个属性返回鼠标相对于浏览器视口(不包括滚动条)的水平和垂直坐标。 - `pageX`、`...

    dom

    会通过滚动而改变mouseEvent:(鼠标事件)[ ] offsetX,offsetY:事件属性返回触发事件时,鼠标相对于事件源元素的X,Y坐标,标准事件没有对应的属性clientX,clientY:事件属性返回当事件被触发时鼠标指针相对于...

    js Event对象的5种坐标

    在IE中,可以使用x和y属性来达到类似效果,但需要注意的是,如果事件源的父元素设置了`position:relative`等定位属性,x和y可能会返回相对于该父元素的位置。 3. **offsetX 和 offsetY**: 这两个属性表示鼠标相...

    JS中各种尺寸的获取

    关于clientX/clientY与pageX/pageY的关系,当没有滚动条时,pageX等于clientX,pageY等于clientY,因为没有额外的滚动偏移。但当页面有滚动条时,pageX和pageY会加上滚动条滚动的距离(ScrollLeft和ScrollTop)。 ...

    js事件详解-0-1-2级模型.pdf

    - offsetX和offsetY提供了鼠标相对于触发事件的目标元素的位置 - pageX和pageY提供了鼠标相对于整个文档的位置 - keyCode提供了被按键的键码信息 5. 事件兼容性:文档还提到了不同浏览器(如W3C标准、IE)在处理...

    Vue实现鼠标经过文字显示悬浮框效果的示例代码

    - `clientX/clientY`:相对于浏览器视口的X和Y坐标。 - `pageX/pageY`:相对于整个HTML文档的X和Y坐标,包括滚动部分。 - `screenX/screenY`:相对于用户屏幕的X和Y坐标。 - `offsetX/offsetY`:相对于最近的...

    JavaScript event对象整理及详细介绍

    x和y属性(以及pageX和pageY)返回鼠标相对于父元素的坐标。在IE浏览器中,x和y是相对于源元素的位置,而pageX和pageY是相对于整个文档的位置。 altKey、ctrlKey和shiftKey等属性会返回一个布尔值,指示在事件发生...

    javascript获取网页各种高宽及位置的方法总结.docx

    - **`event.offsetX`** 和 **`event.offsetY`**:分别表示鼠标在触发事件的元素中的水平和垂直位置(相对于元素内容区域的左上角)。 #### 使用场景举例 1. **调整布局**:根据屏幕尺寸或浏览器窗口大小动态调整...

Global site tag (gtag.js) - Google Analytics