zoukankan      html  css  js  c++  java
  • 获取元素 在网页中的 坐标

    1. 获取 网页真实内容 高度

    • // 获取 网页真实内容 高度
      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.offsetLeft

    • 当前元素左上角相对于 Element.offsetParent 节点的水平位移,单位为像素

    4. Element.offsetTop

    • 当前元素左上角相对于 Element.offsetParent 节点的垂直位移,单位为像素

    3. 获取元素 在 网页 中的 坐标

    方法1

    • // 获取元素 在 网页 中的 坐标    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
          };
      }

     方法2

    • // 获取元素 在 网页 中的 坐标    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
          };
      }

     

    --------小尾巴 ________一个人欣赏-最后一朵颜色的消逝-忠诚于我的是·一颗叫做野的心.决不受人奴役.怒火中生的那一刻·终将结束...
  • 相关阅读:
    MySQL-数据表操作
    MySQL基础命令
    Navicat 15激活
    禅道-启动失败问题整理
    python-开头的注释作用及区别
    SpringBoot、SpringCloud版本中GA/PRE/SNAPSHOT的详解
    mybatis的一些重要配置
    简历对应的知识点
    idea的破解
    SFTP和FTP的区别
  • 原文地址:https://www.cnblogs.com/tianxiaxuange/p/9873933.html
Copyright © 2011-2022 走看看