zoukankan      html  css  js  c++  java
  • javascript 获取标签具体位置

    //var temp = document.getElementById("test_2");
    //temp.style.position = "absolute";
    //temp.style.top = pos.y + "px";
    //temp.style.left = pos.x + "px";


    //获取对象的X,Y位置  接受对象 不接收ID
    function getElementPos(el) {
     var ua = navigator.userAgent.toLowerCase();
     var isOpera = (ua.indexOf('opera') != -1);
     var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
     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]};
    }

  • 相关阅读:
    wxpython 简单例子:显示文本框的窗口显示鼠标位置
    wxpython学习:创建最小的空的wxPython程序
    wxPython学习笔记
    5G PDCCH 协议
    FPGA学习
    CCS 5.5下载地址http://www.dianyuan.com/bbs/1492792.html
    朴素贝叶斯
    决策树最后的存储 检测
    决策树 绘图
    决策树 书上的例题
  • 原文地址:https://www.cnblogs.com/zengwei/p/1718411.html
Copyright © 2011-2022 走看看