function getElementPos(elementId) {
          var ua = navigator.userAgent.toLowerCase();
          var isOpera = (ua.indexOf('opera') != -1);
          var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
          var el = document.getElementById(elementId);
          if(el.parentNode === null || el.style.display == 'none') {
             return false;
          }     
          var parent = null;
          var pos = [];    
          var box;    
          if(el.getBoundingClientRect) {
          //IE
             box = el.getBoundingClientRect();
             var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
             var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
             return {x:box.left + scrollLeft, y:box.top + scrollTop};
            
          } else if (document.getBoxObjectFor) {
          // gecko
             box = document.getBoxObjectFor(el);
             var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;
             var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;
             pos = [box.x - borderLeft, box.y - borderTop];
            
          } else { // safari & opera
             pos = [el.offsetLeft, el.offsetTop];
             parent = el.offsetParent;    
             if (parent != el) {
              while (parent) {
               pos[0] += parent.offsetLeft;
               pos[1] += parent.offsetTop;
               parent = parent.offsetParent;
              }
             }  
             if (ua.indexOf('opera') != -1 || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )) {
              pos[0] -= document.body.offsetLeft;
              pos[1] -= document.body.offsetTop;        
             }   
          }             
          if (el.parentNode) {
             parent = el.parentNode;
          } else {
             parent = null;
          }
          while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors
             pos[0] -= parent.scrollLeft;
             pos[1] -= parent.scrollTop;
             if (parent.parentNode) {
              parent = parent.parentNode;
             } else {
              parent = null;
             }
          }
          return {x:pos[0], y:pos[1]};
          }

          文章來源:http://www.cnblogs.com/wangdetian168/archive/2008/12/09/1350905.html
          posted on 2010-10-11 09:27 sanmao 閱讀(143) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 三亚市| 兴化市| 佛冈县| 徐州市| 白沙| 青岛市| 阳谷县| 三门县| 嘉义县| 类乌齐县| 文安县| 大渡口区| 庐江县| 砚山县| 拜泉县| 保靖县| 广河县| 涞水县| 玛曲县| 城步| 伊春市| 乌拉特中旗| 阳西县| 榆林市| 天峻县| 策勒县| 琼海市| 新乡县| 安福县| 蛟河市| 杭锦旗| 辛集市| 西城区| 万山特区| 陕西省| 孟州市| 中江县| 阜城县| 浙江省| 郑州市| 浠水县|