$(window).height() 和 $(document).height()的区别

本文详细解释了$(window).height()与$(document).height()的区别,前者表示当前浏览器窗口的可见高度,后者则是整个文档的高度。此外还介绍了如何通过$(document).scrollTop()等方法来判断页面是否滚动到了顶部或底部。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

$(window).height() 和 $(document).height()的区别

$(window).height()代表了当前可见区域的大小,
$(document).height()则代表了整个文档的高度,可视具体情况使用.

当浏览器窗口大小改变时(如最大化或拉大窗口后) ,
$(window).height() 随之改变,但是 $(document).height()是不变的。

 

粗糙的举例:

浏览器页面高度为1360px,$(window).height()最高为1360px,还可以调整页面窗口缩小页面高度值。

此时页面有1w行文本,占用了3万px像素,这时候$(document).height()是3万px,不管怎么调整页面窗口,这个值都是不变的。

 

============================

 

$(document).scrollTop() 获取垂直滚动的距离 (即当前滚动的地方的窗口顶端到整个页面顶端的距离)
$(document).scrollLeft() 这是获取水平滚动条的距离

 

要获取顶端 只需要获取到$(this).scrollTop()==0的时候 就是顶端了

要获取底端 只要获取scrollTop()>=$(document).height()-$(window).height() 就可以知道已经滚动到底端了

或者

$(document).scrollTop() + $(window).height() = $(document).height() 

也就是:

页面窗口高度+滚动的高度 = 文档文本高度

============================

注意:如果 $(window).height() 获取的不是窗口的高度而是文档文本高度,

也就是$(window).height()和$(document).height返回值一样

那就是因为DOCTYPE没写造成的。

请检查html标签,<html>改成<!DOCTYPE html>,就OK了。

 

在 Vue.js 中,可以通过 `this.$refs` 访问到 DOM 元素,并利用 `getBoundingClientRect()` 方法获取其位置信息。该方法返回一个 `DOMRect` 对象,包含了元素的 `top`、`right`、`bottom`、`left`、`width` `height` 等属性,可用于获取元素相对于视口的位置[^1]。 例如,可以通过以下方式获取 `this.$refs.table` 元素的位置信息: ```javascript mounted() { this.getTablePosition(); }, methods: { getTablePosition() { const tableElement = this.$refs.table; if (tableElement) { const rect = tableElement.getBoundingClientRect(); console.log('元素的位置信息:', { top: rect.top, right: rect.right, bottom: rect.bottom, left: rect.left, width: rect.width, height: rect.height }); } } } ``` 在上述代码中,`getBoundingClientRect()` 返回的 `rect` 包含了元素的详细位置信息,包括其相对于视口的上、右、下、左边界距离以及宽度高度。该方法通常在组件挂载后调用,以确保 DOM 元素已经渲染完成[^1]。 需要注意的是,如果页面存在滚动或动态内容加载,建议在合适的生命周期钩子(如 `updated`)中再次调用 `getBoundingClientRect()`,以确保获取到最新的元素位置信息[^1]。 ### 获取元素位置信息的常见应用场景 1. **动态调整布局**:根据元素的位置信息,动态设置其样式或位置,实现响应式设计。 2. **滚动监听**:结合 `window.scroll` 事件,判断元素是否进入可视区域,从而实现懒加载或动画触发。 3. **定位弹窗或提示框**:通过获取目标元素的位置,动态计算弹窗或提示框的显示位置,使其始终跟随目标元素[^1]。 ### 示例:动态调整表格高度 在 Vue 中,可以通过计算元素位置窗口高度,动态设置表格的高度。例如: ```javascript methods: { setTableHeight() { const tableElement = this.$refs.table; const paginationExists = !!document.getElementsByClassName("el-pagination").length; const paginationHeight = paginationExists ? 55 : 0; if (tableElement) { const rect = tableElement.getBoundingClientRect(); const tableTop = rect.top; const windowHeight = window.innerHeight; this.tableHeight = windowHeight - tableTop - paginationHeight; } } } ``` 在上述代码中,通过 `getBoundingClientRect()` 获取表格元素的 `top` 位置,并结合窗口高度分页组件的高度,动态计算出表格的高度,从而实现响应式布局。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值