数码资讯
为jquery.position置换法安全()方法获取非价值
调用jquery.position()方法返回的位置相对于父元素。jQuery的官方文档描述了它不同于偏移()方法..偏移量()返回相对于文档的位置,而位置()返回相对于父元素的位置。 但事实上,在使用过程中,我们发现位置()返回的值通常是0,但事实不是0,尤其是谷歌浏览器和IE浏览器,福克斯浏览器
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
调用jquery.position()方法返回的位置相对于父元素。jQuery的官方文档描述了它不同于偏移()方法..偏移量()返回相对于文档的位置,而位置()返回相对于父元素的位置。
但事实上,在使用过程中,我们发现位置()返回的值通常是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
};
};
这产生了冗余代码,但更可靠和更可靠。
但事实上,在使用过程中,我们发现位置()返回的值通常是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
};
};
这产生了冗余代码,但更可靠和更可靠。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。