这几天表单定制器maqetta向IE上移植,发现了很多火狐和IE的区别,现在总结一下一个pagex的区别,这里只是描述一下IE的操作,火狐这里地方时正常的。
--------------------------------
|
| ---iframe----------- |
| | | |
| | ---------- | |
| | | button | | |
| | ----------- | |
| --------------------- |
--------------------------------
在上面的层次中发现一个问题,就是如果button移动速度太快,造成event的target是iframe的document,这样造成了拖动button发生较大偏移(偏移量为iframe到左边框的距离-没有出现滚动条的情况下)
原因如下:(dojo)
1.button上发生事件,event的pagex是button针对于iframe的地址信息
2.如果鼠标移动速度他快,将event的target定位到iframe的document上了,这样返回的就是document的pagex,是针对于整个窗体,这样pagex发生了较大的偏移
分享到:
相关推荐
在JavaScript中,处理鼠标事件时,经常会遇到一系列与鼠标位置相关的属性,如`x`, `offsetX`, `clientX`, `screenX`, `pageX`, `y`, `offsetY`, `clientY`, `screenY`, `pageY`等。这些属性在不同的上下文下提供了...
本文将深入探讨如何创建一个兼容Internet Explorer(IE)和Firefox浏览器的事件模型,特别是在实现拖动功能时所面临的挑战和解决方案。 首先,我们需要理解IE和Firefox在事件处理上的差异。在IE中,事件处理主要...
本文将深入探讨在Internet Explorer(IE)、Firefox、Chrome三大主流浏览器中实现event兼容调用的方法,重点解析事件对象的获取及鼠标坐标获取的差异。 #### 事件对象的兼容性获取 在JavaScript中,事件处理通常...
window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。Firefox必须从源处加入event作参数传递。IE忽略该参数,用window.event来读取该event。解决方法是if(typeof...
- IE的事件对象`event`有`x`和`y`属性,表示鼠标位置,而Firefox使用`event.pageX`和`event.pageY`。为了兼容,可以使用`event.clientX`和`event.clientY`,这两个属性在IE和Firefox中都可用。如果需要精确的坐标,...
9. 事件坐标:IE的事件对象有`x`和`y`属性,Firefox有`pageX`和`pageY`。要获取一致的坐标,可以定义`mX`和`mY`来分别兼容`event.x`和`event.pageY`。 10. 事件源:IE的事件对象有`srcElement`,Firefox有`target`...
FF:event.pageX和event.pageY。 通用:两者都有event.clientX和event.clientY属性。 鼠标当前坐标(加上滚动条滚过的距离) IE:event.offsetX和event.offsetY。 FF:event.layerX和event.layerY。 标签的x和y的坐标...
在IE中可以通过event对象的clientX和clientY属性来获取鼠标位置,而在Firefox中需要将事件对象作为参数传递给事件处理函数,并通过pageX和pageY属性来获取鼠标位置。 6. DIV等元素的边界问题: 不同浏览器在解析CSS...
- **问题描述**:在IE中,鼠标事件对象中包含`clientX`和`clientY`属性;而在Firefox中,则包含`pageX`和`pageY`属性。 - **解决方案**:可以编写一个兼容性的函数来获取鼠标坐标的值: ```javascript var ...
IE中,可以通过`window.event`直接获取到事件对象,而在Firefox中,事件对象通常通过参数传递给事件处理函数。为了兼容两种浏览器,可以采用以下代码: ```javascript function gotoSubmit(evt) { evt = evt ? evt ...
- pageX/pageY:相对于整个文档的鼠标坐标,不受滚动条影响(IE9以上支持)。 此外,还有一些与鼠标事件相关的属性,如鼠标按键状态、鼠标滚轮等。在处理跨浏览器事件时,需要注意IE和其他浏览器之间的差异,以...
9. **事件坐标**:IE的`event`对象有`x`和`y`属性,而FF有`pageX`和`pageY`。可以使用条件语句或计算表达式来兼容这两个属性。 10. **事件源对象**:IE的`event`对象有`srcElement`,FF则有`target`。解决方式是...
IE(Internet Explorer)和Mozilla(包括Firefox)对JavaScript事件处理和事件对象的处理方式存在差异,这给开发者带来了额外的工作量。以下是一些关于IE和Mozilla中脚本兼容性的关键点: 1. **事件对象的访问**: ...
- **IE**:在IE中,可以通过`window.event`来获取事件对象。需要注意的是,不能将`Event`对象作为参数传递给事件处理程序,而应该使用`window.event`或简写为`event`。 - **Firefox**:在Firefox中,`window.event`...
获取鼠标位置时,IE使用`event.clientX`和`event.clientY`,Firefox则需要通过事件对象的`pageX`和`pageY`属性。 关于元素的边界问题,IE和Firefox对待边框的方式不同。在IE中,元素的宽度和高度包含了边框,而在...
7. **event.x与event.y问题**:IE中的`event.x`和`event.y`在Firefox中不存在,可以用`event.pageX`和`event.pageY`替代。在Firefox中,`event.clientX`和`event.clientY`可以替代`event.x`和`event.y`,它们在...
- **IE**: 使用`event.srcElement`获取触发事件的元素。 - **Firefox**: 使用`event.target`获取触发事件的元素。 - **统一解决方案**: 可以通过以下方式统一处理事件源元素: ```javascript var obj = event....
6. **x**: 这是与`offsetX`等效的IE特有属性,可以作为`layerX`的替代使用,同样表示鼠标相对于触发事件元素的位置。 7. **offsetLeft**: 这个属性不是特定于事件的,而是DOM元素本身就有的。它表示DOM元素在其最近...
- **Firefox**:支持`event.pageX`和`event.pageY`。 - **统一解决方案**:可以考虑使用`event.clientX`和`event.clientY`,它们在两个浏览器中的行为一致。 #### 三、选择器与元素操作 1. **元素选择**: - **...
- IE的事件对象具有`x`和`y`属性,而FF有`pageX`和`pageY`。可以使用`mX = event.x ? event.x : event.pageX;`来获取横坐标,类似地处理纵坐标,以适应两种浏览器。 10. **事件源** - IE的事件对象有`srcElement`...