offsetHeight,clientHeight和scrollHeight的区别
我们在写页面的时候经常会遇到判断是否滚动也页底的情况,比如在我的上一篇博客中的瀑布流插件的实现中就需要滑动到页底加载下一页的功能。这是大家会不会很头晕,clientTop,offsetTop,scrollTop这些怎么使用?
先google之,拿到两张图
大概有一定了解
自己写个demo检验一下
有如下结论:
- 注意content的scrollTop在变化,而text的scrollTop一直为0. 可想而知。content.clientHeight + content.scrollTop == content.scrollHeight到达底部(216 + 340 = 556);
可以发现这也是为什么scrollHeight和clientHeight都包含padding高度的原因,因为这样才能相互抵消。计算正确。 - 引用stackoverflow的一段话
clientHeight:
Returns the height of the visible area for an object, in pixels. The value contains the height with the padding, but it does not include the scrollBar, border, and the margin.
offsetHeight:
Returns the height of the visible area for an object, in pixels. The value contains the height with the padding, scrollBar, and the border, but does not include the margin.
So, offsetHeight includes scrollbar and border, clientHeight doesn’t.
大意就是:offsetHeight包括scrollbar和border的高度,clientHeight则不包括两者; 它们都不包括margin的高度;
结论大致与上面的两个图一致,浏览器兼容性未测试,后续遇到实际问题总结
效果图如下: