先运行附件中的例子,仔细体会一下例子:
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、pageX、pageY、screenX、screenY、offsetX、offsetY
本文将详细介绍`clientX`、`screenX`、`pageX`、`offsetX`等坐标系统的概念及其差异,并通过实例来帮助理解这些概念。 #### 二、`pageX`与`pageY` **定义:** `pageX`与`pageY`表示鼠标相对于整个文档的X轴和Y轴的...
4.offsetX,offsetY(鼠标相对于事件源元素的x,y坐标) 元素的offset属性: 1.offsetTop: 元素相对父元素上边的偏移。(只读) 2.offsetLeft: 元素相对父元素左边的偏移。(只读) 3.offsetWidth: 自身包括padding...
首先要搞明白分清clientY pageY screenY layerY offsetY的区别 作用3(事件对象中记录的鼠标位置) 语法 解释 evt.screenX 相对于屏幕的左上角为原点 evt.screenY evt.clientX 相对于浏览器的客户端左上角为原点...
* clientX和clientY:事件发生时鼠标相对于浏览器左上角的X/Y坐标 * screenX和screenY:事件发生时鼠标相对于显示器左上角的X/Y坐标 事件对象的方法 事件对象还拥有一些重要的方法,例如: * stopPropagation():...
理解这些属性之间的差异至关重要,例如,`event.clientX` 和 `event.clientY` 是相对于窗口的,而`event.pageX` 和 `event.pageY` 则是相对于整个文档的。`event.offsetX` 和 `event.offsetY` 是相对于元素的可见...
例如,`event.offsetX/Y`、`event.layerX/Y`、`event.x/y` 和 `event.pageX/pageY` 在某些情况下可能提供相同的信息,但它们在不同浏览器中的行为并不一致。在编写兼容性良好的 JavaScript 代码时,开发者通常需要...
在现代浏览器中,推荐使用clientX和clientY来获取鼠标在视窗内的位置,使用pageX和pageY来获取鼠标在整个文档中的位置,而对于IE9及更新的浏览器,layerX和layerY是替代offsetX和offsetY的不错选择。在设计跨浏览器...
- **offsetX/offsetY**:这两个属性返回鼠标相对于元素边框的左上角的水平和垂直距离,如果事件发生在body元素上,则与clientX/clientY相同。 - **pageX/pageY**:这两个属性返回鼠标相对于整个页面(包括滚动条)...
- `offsetX`、`offsetY`:这两个属性提供了鼠标相对于事件源元素的位置坐标,即鼠标在元素内的位置。 - `clientX`、`clientY`:这两个属性返回鼠标相对于浏览器视口(不包括滚动条)的水平和垂直坐标。 - `pageX`、`...
会通过滚动而改变mouseEvent:(鼠标事件)[ ] offsetX,offsetY:事件属性返回触发事件时,鼠标相对于事件源元素的X,Y坐标,标准事件没有对应的属性clientX,clientY:事件属性返回当事件被触发时鼠标指针相对于...
在IE中,可以使用x和y属性来达到类似效果,但需要注意的是,如果事件源的父元素设置了`position:relative`等定位属性,x和y可能会返回相对于该父元素的位置。 3. **offsetX 和 offsetY**: 这两个属性表示鼠标相...
关于clientX/clientY与pageX/pageY的关系,当没有滚动条时,pageX等于clientX,pageY等于clientY,因为没有额外的滚动偏移。但当页面有滚动条时,pageX和pageY会加上滚动条滚动的距离(ScrollLeft和ScrollTop)。 ...
- offsetX和offsetY提供了鼠标相对于触发事件的目标元素的位置 - pageX和pageY提供了鼠标相对于整个文档的位置 - keyCode提供了被按键的键码信息 5. 事件兼容性:文档还提到了不同浏览器(如W3C标准、IE)在处理...
- `clientX/clientY`:相对于浏览器视口的X和Y坐标。 - `pageX/pageY`:相对于整个HTML文档的X和Y坐标,包括滚动部分。 - `screenX/screenY`:相对于用户屏幕的X和Y坐标。 - `offsetX/offsetY`:相对于最近的...
x和y属性(以及pageX和pageY)返回鼠标相对于父元素的坐标。在IE浏览器中,x和y是相对于源元素的位置,而pageX和pageY是相对于整个文档的位置。 altKey、ctrlKey和shiftKey等属性会返回一个布尔值,指示在事件发生...
- **`event.offsetX`** 和 **`event.offsetY`**:分别表示鼠标在触发事件的元素中的水平和垂直位置(相对于元素内容区域的左上角)。 #### 使用场景举例 1. **调整布局**:根据屏幕尺寸或浏览器窗口大小动态调整...