js原生offsetParent解析

offsetParent是个只读属性,返回最近显示指定位置的容器元素的引用。如果元素没有指定位置,最近的元素或者根元素(标准模式下是html,怪异模式下是body)就是offsetParent。当元素的style.display=‘none‘时,offsetParent返回null。由于offsetTop和offsetLeft是相对于页边距,因此offsetParent是非常有用的。
    
浏览器兼容性
     在以WebKit为核心的浏览器上,如果元素是隐藏的(该元素或者上级元素style.display=‘none‘)或者元素自身style.position=‘fixed‘,那么就会返回null。
    在IE(9)上如元素style.position=‘fixed‘,该属性就会返回null。(然而display:none不影响这个浏览器)

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
  <title>offsetParent属性</title>
  <style type="text/css">
    div {
      margin: 5px;
    }
    #div11 {
      border: 2px solid #0000ff;
    }
    #div21 {
      position: relative;
      border: 2px solid #ffff00;
    }
    #div30 {
      position: relative;
      border: 2px solid red;
    }
    #div31 {
    }
  </style>
  <script type="text/javascript">
    function initPage() {
      getOffsetParent('div12'); //BODY
      getOffsetParent('div22');//DIV
      getOffsetParent('div32');//BODY
    }
    function getOffsetParent(id) {
      var divEl = document.getElementById(id);
      var el = divEl.offsetParent;
      console.log(el.nodeName);
      console.log('element id is ' + el.getAttribute('id') || '');
    }
  </script>
</head>
<body onload="initPage()">
<div id="div11">
  <div id="div12">测试1</div>
</div>
<div id="div21">
  <div id="div22">测试2</div>
</div>
<div id="div30">
  <div id="div31">
    <div id="div32">测试3</div>
  </div>
</div>
</body>
</html>


js原生offsetParent解析,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。