关于document.body和document.documentElement

刚刚帮朋友写一个样式加载数据的时候,用到了这样的一个语句,document.documentElement.clientHeight,

<body>
<h1>x</h1>
   <div class="box">
     <ul>
       <li><img src="1.jpg" alt="111111"></li>
       <li><img src="2.jpg" alt="111111"></li>
       <li><img src="3.jpg" alt="111111"></li>
       <li><img src="4.jpg" alt="111111"></li>
       <li><img src="5.jpg" alt="111111"></li>
       <li><img src="6.jpg" alt="111111"></li>
       <li><img src="7.jpg" alt="111111"></li>
       <li><img src="8.jpg" alt="111111"></li>
       <li><img src="9.jpg" alt="111111"></li>
       <li><img src="10.jpg" alt="111111"></li>
       <li><img src="11.jpg" alt="111111"></li>
       <li><img src="12.jpg" alt="111111"></li>
       <li><img src="13.jpg" alt="111111"></li>
       <li><img src="14.jpg" alt="111111"></li>
       <li><img src="15.jpg" alt="111111"></li>
<li><img src="1.jpg" alt="111111"></li>
       <li><img src="2.jpg" alt="111111"></li>
       <li><img src="3.jpg" alt="111111"></li>
       <li><img src="4.jpg" alt="111111"></li>
       <li><img src="5.jpg" alt="111111"></li>
       <li><img src="6.jpg" alt="111111"></li>
       <li><img src="7.jpg" alt="111111"></li>
       <li><img src="8.jpg" alt="111111"></li>
       <li><img src="9.jpg" alt="111111"></li>
       <li><img src="10.jpg" alt="111111"></li>
       <li><img src="11.jpg" alt="111111"></li>
       <li><img src="12.jpg" alt="111111"></li>
       <li><img src="13.jpg" alt="111111"></li>
       <li><img src="14.jpg" alt="111111"></li>
       <li><img src="15.jpg" alt="111111"></li>
     </ul>
      <div id="jz">点击加载更多</div>
   </div>

结构就是上面。box没有设置样式高度。这个时候我要取可视区的高度就用:document.documentElement.clientHeight 可以了


但是因为我要给最下面的加载定位,必须要有高度,我就动态设置了box的高度。然后我就发现一个很不容易发现的问题,效果和我原来的算法不一样,浏览器并没有报错。

我一直在找原因,经过1个小时的BUG排查,打印出console.log(document.documentElement.clientHeight),惊人的发现,这并不是可视区域的高度,是整个网页的高度。

网上查找一些资料,很多人说是因为DTD也就是W3C声明的原因。具体我也没在意。我换成了console.log(document.body.clientHeight)  这个时候可视区域的高度就出来了。

现在这个规律是,当你在body体里面设置了界定的高度,并且这个高度大于你可视区域的高度(也就是有滚动条了),这个时候你取可视区域的高度要用document.body.clientHeight

当body里面的内容也产生了滚动条,但是你没有在样式中设置,这个时候你去可视区域的高度用document.documentElement.clientHeight。

documentElement是文档的根节点。body只是个节点。

转载于:https://www.cnblogs.com/junxi/p/5228494.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值