Firefox下的坐标
左直拳
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
FireFox下的坐标与IE有所不同。
1、鼠标坐标
要获取鼠标的坐标,离不开事件event这个对象。在IE里,event是全局对象,你可以在任何地方引用event,或者用 event.srcElement 来找到触发事件的对象。但是FF不行,必须在触发事件调用的函数里,将event作为参数传过去才能用,如onclick(event)。
鼠标当前坐标
IE:event.x和event.y。
FF:event.pageX和event.pageY。
通用:两者都有event.clientX和event.clientY属性。
鼠标当前坐标(加上滚动条滚过的距离)
IE:event.offsetX和event.offsetY。
FF:event.layerX和event.layerY。
2、样式(style)坐标
IE:style.left,style.top
FF:style.left,style.top
IE:style.posLeft 和 style.posTop
FF:没有。
3、对象坐标
通用:两者都有[object].offsetLeft 和 [object].offsetTop
问题是,在FF(FireFox)中,它们是返回与BODY的偏移,而在IE中,是其所在容器中的水平及垂直偏移。
那么怎样在IE中也能获得与BODY的偏移呢?因为这个偏移才最有用,找到了这两个偏移,就相当于找到了在页面中的绝对位置。
可以变通一下:
var posX = objLookingFor.offsetLeft;
var posY = objLookingFor.offsetTop;
var aBox = objLookingFor;//需要获得位置的对象
do {
aBox = aBox.offsetParent;
posX += aBox.offsetLeft;
posY += aBox.offsetTop;
} while( aBox.tagName != "BODY" );
这样到最后,posX与posY就是与BODY的偏移。
但这也不是绝对的,有例外:例外,就是当该元素位于表格的TD中时,offsetLeft的值是该元素外边界至其所在TD左侧内侧边界的值,也即是说此时元素的offsetLeft表现类似于在IE中。这时获取坐标方法可以为:
//oElement是某对象
var width = oElement.offsetWidth;
var height = oElement.offsetHeight;
if( oElement.offsetParent.tagName == "BODY" || appname == "Netscape")
{
var pos = {x:0,y:0};
pos.x = oElement.offsetLeft;
pos.y = oElement.offsetTop;
var x = 0, y = 0;
while( oElement.offsetParent )
{
//累加从该元素起至父元素的offsetLeft和offsetTop
x += oElement.offsetParent.offsetLeft;
y += oElement.offsetParent.offsetTop;
//遇到table标签则表明累计的量都应该累加到该元素的offsetLeft和offsetTop(Table中按IE方式计算)
if( oElement.offsetParent.tagName.toLowerCase() == "table" )
{
pos.x += x;
pos.y += y;
x = 0;
y = 0;
}
oElement = oElement.offsetParent;
}
return [pos.x,pos.y,pos.x + width,pos.y + height];
}
分享到:
相关推荐
标题“火狐兼容获取鼠标的坐标”涉及到的是在网页开发中如何在Firefox浏览器上获取鼠标指针的位置。在Web开发中,特别是在JavaScript编程中,获取鼠标坐标是一项常见的需求,用于实现各种交互效果,如拖放功能、点击...
### JavaScript在Firefox与IE浏览器中的兼容性问题解析 在网页开发过程中,确保代码在不同浏览器上的兼容性是一项挑战。特别是当涉及到JavaScript时,由于历史原因,Internet Explorer(IE)和Mozilla Firefox(MF...
### JavaScript在Internet Explorer (IE) 和 Firefox 中的区别与解决方案 #### 一、获取HTML元素的方式差异 1. **通过ID获取元素**: - **IE**:支持`document.getElementById`和`document.all`两种方式。 - ...
IE 和 Firefox 对事件对象中的坐标属性的支持不同。 **说明:** - **IE环境下**,事件对象包含 `x` 和 `y` 属性,但没有 `pageX` 和 `pageY` 属性。 - **Firefox环境下**,事件对象包含 `pageX` 和 `pageY` 属性,...
版本号:Firefox 火狐浏览器 14.0.1 2012年7月17日最新发布 简体中文版 更新内容: 谷歌搜索中默认使用SSL:默认在谷歌搜索中启用HTTPS,帮助用户远离某些可能会收集数据,修改或审查搜索结果的网络基础设置。同时...
然而,由于不同浏览器的实现差异,特别是Internet Explorer(IE)和Firefox,开发者经常面临兼容性问题。以下是一些关键的JavaScript兼容处理策略: 1. **数组、集合类对象的元素访问** - IE支持`for...in`循环...
### IE与Firefox兼容性问题详解 #### 一、概述 在网页开发过程中,浏览器兼容性问题一直是前端开发者面临的重要挑战之一。尤其是对于早期版本的Internet Explorer(简称IE)与Mozilla Firefox(简称Firefox)来说...
本文将深入探讨在Internet Explorer(IE)、Firefox、Chrome三大主流浏览器中实现event兼容调用的方法,重点解析事件对象的获取及鼠标坐标获取的差异。 #### 事件对象的兼容性获取 在JavaScript中,事件处理通常...
- IE中,通过事件对象的`event.clientX`和`event.clientY`获取鼠标坐标,Firefox则需要传递事件对象给函数,然后通过`ev.pageX`和`ev.pageY`获取。 7. 元素边界问题: - IE计算宽度和高度时包括边框,而Firefox不...
相比之下,Firefox仅通过`getElementById`支持唯一ID的访问,对于非唯一名称的元素,需要使用`getElementsByName`并处理可能的元素数组。 2. **表单元素的获取** IE中通过`document.forms("formName")`可以直接...
JavaScript在Firefox和IE之间的兼容性问题一直是前端开发者面临的一大挑战。由于这两个浏览器内核的不同,导致在处理某些JavaScript特性时存在差异。以下是一些常见的兼容性问题及其解决方案: 1. **Document.form....
### 兼容IE与Firefox:JS代码详解 在Web开发过程中,确保JavaScript代码能够在不同的浏览器上正常运行是一项挑战性任务。特别是在早期版本的Internet Explorer(IE)与Firefox之间实现兼容性,更是如此。本文将详细...
### JavaScript的IE与Firefox兼容性问题详解 #### 引言 在Web开发中,确保脚本能在不同浏览器间正常运行是非常重要的。特别是对于早期版本的Internet Explorer (IE) 和 Firefox (MF),由于它们对JavaScript的支持...
JavaScript是一种广泛应用于网页开发的脚本语言,但在不同的浏览器中,其执行方式可能存在差异,特别是老版本的Internet Explorer(IE)和Firefox。由于历史原因,IE对某些特性有着独特的实现,而Firefox则遵循更...
- **鼠标坐标**:IE的事件对象有`x`和`y`属性,Firefox有`pageX`和`pageY`。要获取一致的坐标值,可以使用条件语句检查并转换。 10. **事件源元素** - **事件源访问**:IE使用`event.srcElement`,Firefox使用`...
- 在IE中,为了显示鼠标的手形指针,可以使用`cursor:hand`,而在Firefox和其他现代浏览器中,应该使用`cursor:pointer`。因此,为了确保在所有浏览器中一致的效果,应始终使用`cursor:pointer`。 2. 访问表单元素...
本文将深入探讨IE(Internet Explorer)和Firefox(Mozzila Firefox)之间的JS差异,这对于开发和面试都是极其重要的。 1. **文档对象模型(DOM)访问差异** - `document.form.item`问题:在IE中,可以通过`document...
可爱的定坐标画的猫咪,谷歌浏览器下或firefox浏览器
例如,在Firefox中,获取元素的精确坐标可能需要使用`getBoundingClientRect()`方法。 总结来说,JavaScript提供了多种方式来获取鼠标坐标和元素位置,开发者可以根据具体需求选择合适的方法。了解这些坐标系统的...