2 回答
TA贡献1820条经验 获得超10个赞
受上回答启发确实跟css有关,
但是:
html {
height: 100%;
overflow: scroll;
}
这样写是获取不到值的
html {
height: 100%;
overflow: visible;
}
这样写就可以获取到值了,所以跟html的高度是否是100%并无关系
TA贡献1788条经验 获得超4个赞
和你的页面布局有关。
正常情况下滚动条是属于 html 的,页面撑开可以正常获取document.documentElement.scrollTop。
在滚动条属于 html 或 body 的情况下document.body.scrollTop || document.documentElement.scrollTop能正常拿到相应值。
如果都为0,那说明:
当前滚动条位置就是在顶部。
没有产生滚动。
你当前的滚动条不再属于 html 或者 body。
其它我没想到的= =。
比如以下这种结构对应3:
<!DOCTYPE html>
<html>
<body>
<div class="wrapper">
<div class="main"></div>
</div>
</body>
</html>
<style>
html, body, .wrapper {
width: 100%;
height: 100%;
overflow: auto;
}
.main {
height: 10000px;
}
</style>
这样.main撑开的滚动条其实是属于.wrapper的。只有wrapper.scrollTop可以获取相应的值。
document.body.scrollTop || document.documentElement.scrollTop自然始终为0。
添加回答
举报
