为了账号安全,请及时绑定邮箱和手机立即绑定

请问为什么document.body.scrollHeight高度为0

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 


</head>

<body>

<script type="text/javascript">

var w = document.documentElement.scrollWidth;

var h = document.documentElement.scrollHeight;

var wb = document.body.scrollWidth;

var hb = document.body.scrollHeight;

document.write(w+"/"+h+"<br/>");

document.write(wb+"/"+hb);

</script>

</body>    

</html>

hb输出结果为0请问为什么呢?


正在回答

3 回答

<style>

        html, body {

        height: 100%; 

  

    }

    </style>

样式设置下高度,就能得到正常的了

0 回复 有任何疑惑可以回复我~

我试了一下scrollTop,我已经凌乱了,无论我用body还是documentElement,scrollTop都是0。

不过照你说的我删掉了<!DOCTYPE>,scrollHeight确实不是0了,用body的scrollWidth和scrollHeight,与用documentElement的值完全相同了...这是一门玄学

1 回复 有任何疑惑可以回复我~

最近写了一个拖动层的HTML页面,   需要获取滚动条当前的位置.

于是我使用document.body.scrolltop获取y方向滚动的位置...奇怪的事情出现了! 无论滚动条怎么滚动, document.body.scrolltop竟然一直都是0!

对比以前写的一个页面.发现区别很小. 旧页面却没有问题.这就怪了...

我开始一点一点的排除,去掉多于的代码. 直到我去掉文档最顶部的

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

页面此时才正常.

原来是这行东西造成IE无法获取document.body.scrolltop!

把顶部这两行删掉将可以了.但是为什么会这样呢?

google一下,发现改成:

document.body.scrollTop 
要改成 
document.documentElement.scrollTop

0 回复 有任何疑惑可以回复我~
#1

鹿一思 提问者

我试了一下scrollTop,我已经凌乱了,无论我用body还是documentElement,scrollTop都是0。 不过照你说的我删掉了<!DOCTYPE>,scrollHeight确实不是0了,而是,用body的scrollWidth和scrollHeight,与用documentElement的值完全相同了...本来用body的scrollWidth值相对小一些。这是一门玄学...
2019-04-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

请问为什么document.body.scrollHeight高度为0

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信