标签:body clientWidth documentElement clientHeight js 滚动条 获取 scrollTop document
一.获取当前页面滚动条纵坐标的位置
document.body.scrollTop与document.documentElement.scrollTop
IE6/7/8/IE9及以上:
可以使用 document.documentElement.scrollTop;
Safari,Firefox:,Chrome:
可以使用 document.body.scrollTop;
二.js获取网页屏幕可视区域高度
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
看了以上代码,可能会有疑问说body和可见区域到底有什么不同呢,我们在console里运行一下会发现在不同的网页中有不同的情况值,有的document.body.clientWidth和document.documentElement.clientWidth 的值相同,有的却不同,原因在哪呢?
原因就是:
在浏览器默认的情况下,body有8-10px左右的边距,而可见区域包括了这个边距,因此如果我们用到body{padding:0;margin:0;}来消除这种默认的情况。那么document.body.clientWidth和document.documentElement.clientWidth 的值就会相同。
三.获取文档完整高度
网页正文全文宽:document.body.scrollWidth 基本等同于document.body.clientWidth
网页正文全文高:document.body.scrollHeight 基本等同于document.body.clientHeight
案例:
滚到底部,加载下一页数据
export default {
data() {
return {};
},
mounted() {
//监听并处理函数
window.addEventListener("scroll", this.handleScroll);
},
methods: {
handleScroll(e) {
if (
this.getScrollTop() + this.getClientHeight() == this.getScrollHeight()
) {
if (Math.ceil(this.total / this.limit > this.nextPage)) {
this.nextPage += 1;
this.getList();
}
}
},
//获取当前滚动条的位置
getScrollTop(){
var scrollTop=0
if(document.documentElement&&document.documentElement.scrollTop){
scrollTop = document.documentElement.scrollTop
}else if(document.body){
scrollTop = document.body.scrollTop
}
return scrollTop
},
//获取当前可视范围的高度
getClientHeight(){
var clientHeight = 0
if(document.body.clientHeight&&document.documentElement.clientHeight){
clientHeight = Math.min(document.body.clientHeight,document.documentElement.clientHeight)
}else{
clientHeight = Math.max(document.body.clientHeight,document.documentElement.clientHeight)
}
return clientHeight
},
//获取文档完整的高度
getScrollHeight(){
return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)
}
}
};
标签:body,clientWidth,documentElement,clientHeight,js,滚动条,获取,scrollTop,document 来源: https://blog.csdn.net/qq_39928481/article/details/121945225
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。