国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery.position()方法獲取不到值的安全替換方法

2024-05-06 16:16:40
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jQuery.position()方法獲取不到值的安全替換方法,本文給出了一種變通的方法,用.offset()來換算,需要的朋友可以參考下
 

調用jQuery.position()方法會返回相對于父元素的位置,jQuery官方文檔中描述說,它跟.offset()方法不一樣,.offset()返回的是相對于document的位置,而.position()返回的是相對于父元素的位置。

但事實上,在使用的過程中,我們發現.position()返回的值經常是0。但事實不是0。尤其是谷歌瀏覽器和IE瀏覽器里。火狐瀏覽器沒有此問題。

究其原因,以基于Webkit的瀏覽器(谷歌瀏覽器和Safari瀏覽器)為例,只有當元素(圖片、flash等)完全加載后,瀏覽器才能訪問到這些元素的高度和寬度,而火狐瀏覽器是在DOM加載完成后就能訪問這些屬性,它不需要知道這個元素的完整尺寸。而谷歌瀏覽器就不行。因此在谷歌/IE這樣的瀏覽器里,如果你想使用.position()獲取元素的偏移量,往往得到值就是初始值:0。

有一種補救的方法是將你的.position()調用放到 $(window).load()事件觸發之后,而不是$(document).ready事件之后。但這種方法也未必可靠。

另外一種變通的方法是用.offset()來換算:

復制代碼代碼如下:

jQuery.fn.aPosition = function() {
    thisLeft = this.offset().left;
    thisTop = this.offset().top;
    thisParent = this.parent();

 

    parentLeft = thisParent.offset().left;
    parentTop = thisParent.offset().top;

    return {
        left: thisLeft-parentLeft,
        top: thisTop-parentTop
    };
};


這雖然產生了多余的代碼,但比較可靠的多,用的讓人放心。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 博客| 库伦旗| 黎平县| 武川县| 天等县| 德惠市| 乌苏市| 天门市| 屯留县| 新泰市| 甘孜县| 洛隆县| 芒康县| 汤阴县| 贺州市| 沂源县| 德惠市| 衡山县| 扎赉特旗| 拉萨市| 邯郸市| 华坪县| 张家港市| 新民市| 六盘水市| 含山县| 米脂县| 柏乡县| 呼和浩特市| 大城县| 凌源市| SHOW| 多伦县| 永济市| 长顺县| 左贡县| 姚安县| 苗栗县| 兴安盟| 姚安县| 拉萨市|