最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript獲取頁面元素的絕對位置實(shí)現(xiàn)

 更新時(shí)間:2022年11月16日 15:59:57   作者:sunlylorn  
這篇文章主要為大家介紹了Javascript獲取頁面元素的絕對位置實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、概念

絕對位置:網(wǎng)頁元素的左上角相對于整張網(wǎng)頁左上角的坐標(biāo)

相對位置:相對于瀏覽器窗口左上角的坐標(biāo)

二、獲取方法

1、每個(gè)元素都有offsetTop和offsetLeft屬性,表示該元素的左上角與父容器(offsetParent對象)左上角的距離。

2、每個(gè)元素都有offsetParent屬性。offsetParent屬性返回一個(gè)對象的引用,這個(gè)對象是距離調(diào)用offsetParent的元素最近的(在包含層次中最靠近的),并且是已進(jìn)行過CSS定位的容器元素。 如果這個(gè)容器元素未進(jìn)行CSS定位, 則offsetParent屬性的取值為根元素(在標(biāo)準(zhǔn)兼容模式下為html元素;在怪異呈現(xiàn)模式下為body元素)的引用。

當(dāng)容器元素的style.display 被設(shè)置為 "none"時(shí)(譯

注:IE和Opera除外),offsetParent屬性 返回 null 。

所以,只需要循環(huán)取得頁面元素的offsetParent,并逐步累加offsetTop和offsetLeft,就可以得到該元素的絕對坐標(biāo)。

三、代碼

function getElementAbsPos(e) 
{
    var t = e.offsetTop;
    var l = e.offsetLeft;
    while(e = e.offsetParent)
    {
        t += e.offsetTop;
    l += e.offsetLeft;
    }
 
    return {left:l,top:t};
}

四、問題

由于在iframe中,offsetParent對象未必等于父容器(同樣的,還有表格),所以通過getElementAbsPos函數(shù)得到并不是頁面元素的絕對位置,如下圖所示:

下面給出一個(gè)在iframe中正確獲取頁面元素的絕對位置的代碼:

/**
 * @param e 頁面元素
 * @param arrParentid 頁面元素e所在的iframe的數(shù)組
 * @param isID 參數(shù)arrParentid中是iframe的id還是object
 */
function getElementAbsPos(e,arrParentid,isID) 
{
    var t = e.offsetTop;
    var l = e.offsetLeft;
    while(e = e.offsetParent)
    {
        t += e.offsetTop;
    l += e.offsetLeft;
    }
    if(arguments.length >= 2)
    {
        for(var i=0; i<arrParentid.length; i++)
        {
            e = (isID==true) ? top.document.getElementById(arrParentid[i]) : arrParentid[i];
            t += e.offsetTop;
        l += e.offsetLeft;
            while(e = e.offsetParent)
            {
                t += e.offsetTop;
        l += e.offsetLeft;
            }
        }
    }
    
    return {left:l,top:t};
}

以上就是Javascript獲取頁面元素的絕對位置實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Javascript元素絕對位置的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript常用正則函數(shù)用法示例

    JavaScript常用正則函數(shù)用法示例

    這篇文章主要介紹了JavaScript常用正則函數(shù)用法,結(jié)合實(shí)例形式分析了JavaScript正則函數(shù)match、exec、test、search、replace、split的功能與具體使用技巧,需要的朋友可以參考下
    2017-01-01
  • javaScript操作字符串的一些常用方法

    javaScript操作字符串的一些常用方法

    本文主要介紹了javaScript操作字符串的一些常用方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 基于JavaScript實(shí)現(xiàn)省市聯(lián)動效果

    基于JavaScript實(shí)現(xiàn)省市聯(lián)動效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)省市聯(lián)動效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • js密碼強(qiáng)度實(shí)時(shí)檢測代碼

    js密碼強(qiáng)度實(shí)時(shí)檢測代碼

    這篇文章主要為大家詳細(xì)介紹了js密碼強(qiáng)度實(shí)時(shí)檢測代碼,密碼強(qiáng)度的判斷, 在注冊網(wǎng)站用戶的時(shí)候, 是一個(gè)必須要做的事情,如何實(shí)現(xiàn)js密碼強(qiáng)度檢測,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JavaScript中object和Object的區(qū)別(詳解)

    JavaScript中object和Object的區(qū)別(詳解)

    下面小編就為大家?guī)硪黄狫avaScript中object和Object的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • 基于JavaScript實(shí)現(xiàn)簡單掃雷游戲

    基于JavaScript實(shí)現(xiàn)簡單掃雷游戲

    這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)簡單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 多種方法判斷Javascript對象是否存在

    多種方法判斷Javascript對象是否存在

    我們要判斷一個(gè)全局對象myObj是否存在,如果不存在,就對它進(jìn)行聲明,Juriy Zaytsev指出判斷一個(gè)Javascript對象是否存在,有超過50種寫法,下面為大家介紹幾種比較常用的,感興趣的朋友可以參考下
    2013-09-09
  • javascript實(shí)現(xiàn)簡易聊天室

    javascript實(shí)現(xiàn)簡易聊天室

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)簡易聊天室,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • JavaScript實(shí)現(xiàn)字符雨效果

    JavaScript實(shí)現(xiàn)字符雨效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)字符雨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • JS實(shí)現(xiàn)動態(tài)星空背景效果

    JS實(shí)現(xiàn)動態(tài)星空背景效果

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)動態(tài)星空背景效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11

最新評論

临洮县| 宁晋县| 隆子县| 梅河口市| 大城县| 上思县| 安龙县| 新平| 张家港市| 平罗县| 鞍山市| 武平县| 桐城市| 淳安县| 奉化市| 连山| 西畴县| 荆门市| 岗巴县| 涟源市| 兴化市| 芒康县| 岳西县| 湟源县| 常宁市| 呼和浩特市| 玉田县| 象州县| 塘沽区| 柘城县| 金山区| 澄江县| 灌南县| 广州市| 乳源| 金溪县| 志丹县| 托克托县| 通州区| 肇东市| 五莲县|