<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    用 Javascript 獲取指定頁面元素的位置是一個非常常見的需求,本文介紹的方法能夠準確返回一個元素相對于整個文檔左上角的坐標,即元素的 top 、left 的位置,而且能夠兼容瀏覽器,相信對新手非常有用。

    1. <script language="javascript" type="text/javascript">  
    2.   
    3. <!--    
    4.   
    5. // 說明:用 Javascript 獲取指定頁面元素的位置   
    6.   
    7. // 整理:http://www.codebit.cn   
    8.   
    9. // 來源:YUI DOM    
    10.   
    11. function getElementPos(elementId) {  
    12.   
    13.     var ua = navigator.userAgent.toLowerCase();       
    14.   
    15.     var isOpera = (ua.indexOf('opera') != -1);       
    16.   
    17.     var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof        
    18.   
    19.     var el = document.getElementById(elementId);   
    20.   
    21.           
    22.   
    23.     if(el.parentNode === null || el.style.display == 'none'){ return false; }        
    24.   
    25.     var parent = null;  
    26.   
    27.     var pos = [];     //不定長數組?  
    28.   
    29.     var box;        
    30.   
    31.     if(el.getBoundingClientRect){  //IE       
    32.   
    33.         box = el.getBoundingClientRect();          
    34.   
    35.         var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);          
    36.   
    37.         var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);            
    38.   
    39.         return {x:box.left + scrollLeft, y:box.top + scrollTop};       
    40.   
    41.     }else if(document.getBoxObjectFor){   // gecko                  
    42.   
    43.         box = document.getBoxObjectFor(el);                       
    44.   
    45.         var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;           
    46.   
    47.         var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;            
    48.   
    49.         pos = [box.x - borderLeft, box.y - borderTop];       
    50.   
    51.     }else{    // safari & opera       
    52.   
    53.         pos = [el.offsetLeft, el.offsetTop];          
    54.   
    55.         parent = el.offsetParent;           
    56.   
    57.         if (parent != el) {  
    58.   
    59.             while (parent) {                   
    60.   
    61.                 pos[0] += parent.offsetLeft;                 
    62.   
    63.                 pos[1] += parent.offsetTop;               
    64.   
    65.                 parent = parent.offsetParent;              
    66.   
    67.             }  
    68.   
    69.         }           
    70.   
    71.         if (ua.indexOf('opera') != -1  || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )){                
    72.   
    73.             pos[0] -= document.body.offsetLeft;               
    74.   
    75.             pos[1] -= document.body.offsetTop;           
    76.   
    77.         }        
    78.   
    79.     }              
    80.   
    81.     if (el.parentNode) {   
    82.   
    83.         parent = el.parentNode;   
    84.   
    85.     } else {   
    86.   
    87.         parent = null;   
    88.   
    89.     }         
    90.   
    91.     while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors          
    92.   
    93.         pos[0] -= parent.scrollLeft;           
    94.   
    95.         pos[1] -= parent.scrollTop;        
    96.   
    97.         if (parent.parentNode) {   
    98.   
    99.             parent = parent.parentNode;   
    100.   
    101.         } else {   
    102.   
    103.             parent = null;   
    104.   
    105.         }       
    106.   
    107.     }       
    108.   
    109.     return {x:pos[0], y:pos[1]};  
    110.   
    111. }  //-->   
    112.   
    113. </script> 


    第二種方法:
    function WebForm_GetElementPosition(element) {
        var result = new Object();
        result.x = 0;
        result.y = 0;
        result.width = 0;
        result.height = 0;
        if (element.offsetParent) {
            result.x = element.offsetLeft;
            result.y = element.offsetTop;
            var parent = element.offsetParent;
            while (parent) {
                result.x += parent.offsetLeft;
                result.y += parent.offsetTop;
                var parentTagName = parent.tagName.toLowerCase();
                if (parentTagName != "table" &&
                    parentTagName != "body" &&
                    parentTagName != "html" &&
                    parentTagName != "div" &&
                    parent.clientTop &&
                    parent.clientLeft) {
                    result.x += parent.clientLeft;
                    result.y += parent.clientTop;
                }
                parent = parent.offsetParent;
            }
        }
        else if (element.left && element.top) {
            result.x = element.left;
            result.y = element.top;
        }
        else {
            if (element.x) {
                result.x = element.x;
            }
            if (element.y) {
                result.y = element.y;
            }
        }
        if (element.offsetWidth && element.offsetHeight) {
            result.width = element.offsetWidth;
            result.height = element.offsetHeight;
        }
        else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
            result.width = element.style.pixelWidth;
            result.height = element.style.pixelHeight;
        }
        return result;
    }
    posted on 2009-02-23 11:34 seal 閱讀(893) 評論(0)  編輯  收藏 所屬分類: Javascript
    主站蜘蛛池模板: 国产精品99精品久久免费| 一级毛片大全免费播放下载| 男女作爱在线播放免费网站| 亚洲自偷自偷在线制服| 无码一区二区三区AV免费| 亚洲精彩视频在线观看| 亚洲电影在线免费观看| 亚洲乱码在线视频| 中文字幕无码免费久久99| 最新国产精品亚洲| 免费高清小黄站在线观看| 国产亚洲精品AAAA片APP| 久久精品无码精品免费专区| 久久久久亚洲Av片无码v| 最好看的中文字幕2019免费| 亚洲精品**中文毛片| 女人18毛片水真多免费播放| 亚洲国产精品无码久久| 四虎成人精品永久免费AV| 内射无码专区久久亚洲| 久久免费观看视频| 亚洲视频一区在线播放| 中文字幕亚洲精品资源网| 久久不见久久见免费视频7| 亚洲美女免费视频| 日本免费一区二区三区最新vr| 老湿机一区午夜精品免费福利| 国产午夜亚洲精品国产成人小说| 亚洲一区二区三区无码国产 | 亚洲高清一区二区三区| 日本免费一区尤物| 国产拍拍拍无码视频免费| 亚洲人成网站在线观看播放动漫 | 亚洲大香人伊一本线| 日本人的色道www免费一区| 国产免费区在线观看十分钟| 亚洲视频中文字幕| 国产精品免费一级在线观看| 免费看搞黄视频网站| 亚洲熟妇无码AV| 亚洲va久久久噜噜噜久久男同 |