javascript中的 offsetParent

来源:互联网 发布:模拟退火 遗传算法结合 编辑:程序博客网 时间:2024/05/19 18:39


在td中的元素会把第一个绝对/相对定位的hierarchy parent当作offsetParent,如果没有找到需要分三种情况讨论

  一,如果该元素没有绝对/相对定位,则会把td当作offsetParent 

  二,如果该元素绝对/相对定位并且table没有绝对/相对定位,则会把body当作offsetParent 

  三,如果该元素绝对/相对定位并且table绝对/相对定位,则会把table当作offsetParent 

看一下示例代码 

1.<BODY > 
<TABLE BORDER=1 ALIGN=right> 
   <TR> 
     <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv">sondiv</div></div></TD> 
   </TR> 
</TABLE> 


运行结果parentdiv.offsetParent.tagName IS "body" 

                 sondiv.offsetParent.id     IS "parentdiv" 

2.<BODY > 
<TABLE BORDER=1 ALIGN=right> 
   <TR> 
     <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD> 
   </TR> 
</TABLE> 

运行结果parentdiv.offsetParent.tagName IS "body" 

                 sondiv.offsetParent.id     IS "parentdiv" 

3.<BODY > 
<TABLE BORDER=1 ALIGN=right> 
   <TR> 
     <TD ID=oCell><div id="parentdiv" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD> 
   </TR> 
</TABLE> 


运行结果parentdiv.offsetParent.tagName IS "TD" 

                 sondiv.offsetParent.tagName    IS "body" 

4.<BODY > 
<TABLE BORDER=1 ALIGN=right> 
   <TR> 
     <TD ID=oCell><div id="parentdiv" >parentdiv<div id="sondiv">sondiv</div></div></TD> 
   </TR> 
</TABLE> 


运行结果parentdiv.offsetParent.tagName IS "TD" 

                 sondiv.offsetParent.tagName    IS "TD" 

5.<BODY > 
<TABLE BORDER=1 ALIGN=right style="position:relative"> 
   <TR> 
     <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD> 
   </TR> 
</TABLE> 

运行结果parentdiv.offsetParent.tagName IS "Table" 
0 0
原创粉丝点击