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]};
          }

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 崇阳县| 南昌市| 松桃| 河南省| 闽清县| 石景山区| 迭部县| 阿拉善左旗| 徐州市| 万年县| 北流市| 博野县| 扬州市| 连城县| 磐安县| 鱼台县| 黎川县| 郧西县| 九江县| 鞍山市| 高陵县| 隆德县| 潮安县| 湖州市| 凯里市| 三门县| 嘉义县| 怀远县| 五家渠市| 刚察县| 六安市| 阳山县| 花莲县| 深州市| 浦县| 怀集县| 富宁县| 宾川县| 喀什市| 云南省| 肇源县|