獲取元素 在網頁中的 座標

1. 獲取 網頁真實內容 高度chrome

  • // 獲取 網頁真實內容 高度
    function getScrollHeight(){  
        return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);  
    }

     

2. 獲取 網頁真實內容 寬度瀏覽器

  • // 獲取 網頁真實內容 寬度
    function getScrollWidth(){  
        return Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);  
    }

 

3. Element.offsetLeftspa

  • 當前元素左上角相對於 Element.offsetParent 節點的水平位移,單位爲像素

 

4. Element.offsetTopcode

  • 當前元素左上角相對於 Element.offsetParent 節點的垂直位移,單位爲像素

3. 獲取元素 在 網頁 中的 座標blog

方法1get

  • // 獲取元素 在 網頁 中的 座標    Test Already.
    function getElementPosition(ele) {
        var left = 0;
        var top = 0;
        var p = ele;
        while (p !== null)  {
            left += p.offsetLeft;
            top += p.offsetTop;
            p = p.offsetParent;   // 遍歷相對元素的座標
        }
        
        var pageHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
        var pageWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
        
        return {
            left: left,
            top: top,
            
            right: pageWidth - left - ele.offsetWidth,
            bottom: pageHeight - top - ele.offsetHeight
        };
    }

 


 方法2it

  • // 獲取元素 在 網頁 中的 座標    Test Already.
    function posInPage(obj){
        var theXOffset = document.documentElement.scrollLeft ||    // 火狐 IE9及如下滾動條是HTML的
                         window.pageXOffset ||                     // IE10及以上 window.pageXOffset
                         document.body.scrollLeft;                 // chrome滾動條是body的
        
        var theYOffset = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
        
        var theClient = obj.getBoundingClientRect();
        
        // 在IE中,默認座標從(2,2)開始計算,致使最終距離比其餘瀏覽器多出兩個像素,須要作如下兼容
        var top2px = document.documentElement.clientTop;
        var left2px = document.documentElement.clientLeft;
        
        var pageHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
        var pageWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
        
        return {
            top: theClient.top - top2px + theYOffset,
            left: theClient.left - left2px + theXOffset,
            
            bottom: pageHeight - (theClient.top - top2px + theYOffset) - obj.offsetHeight,
            right: pageWidth - (theClient.left - left2px + theXOffset) - obj.offsetWidth
        };
    }
相關文章
相關標籤/搜索