
但事实上,在使用过程中,我们发现位置()返回的值通常是0,但事实不是0,尤其是谷歌浏览器和IE浏览器,福克斯浏览器没有这个问题。
基于WebKit的浏览器的原因(谷歌浏览器、Safari浏览器)为例,只有当元素(图片、flash)完全加载,浏览器可以访问这些元素对火狐浏览器的高度和宽度在加载DOM可以访问这些属性,它不需要知道完整的尺寸元。和谷歌浏览器不能做。所以在一个浏览器如谷歌/ IE,如果你想使用的位置()得到该元素的偏移量,该值通常是初始值:0。
一种补救方法是将位置()调用放在$(窗口)Load()事件的触发器上,而不是在$(文档)就绪事件之后。但是这个方法不一定可靠。
另一种方法是使用:
复制代码代码如下所示:
jquery.fn.aposition =函数(){
thisleft = this.offset(左);
thistop = this.offset(顶部);
thisparent = this.parent();
parentleft = thisparent.offset(左);
parenttop = thisparent.offset(顶部);
返回{
左:thisleft parentleft,
上图:thistop parenttop
};
};
这产生了冗余代码,但更可靠和更可靠。