如何确定 jQuery 中窗口的高度和滚动位置?

IT技术 javascript jquery
2021-02-03 05:07:21

我需要在 jQuery 中获取窗口的高度和滚动偏移量,但我没有在 jQuery 文档或 Google 中找到它。

我 90% 确定有一种方法可以访问元素的高度和滚动顶部(大概包括窗口),但我找不到具体的参考。

5个回答

来自 jQuery 文档:

const height = $(window).height();
const scrollTop = $(window).scrollTop();

http://api.jquery.com/scrollTop/
http://api.jquery.com/height/

这在 jQuery 1.3.2 的任何浏览器中都不起作用,即使它应该是在早期版本中添加的。要么是我的代码有问题
2021-03-16 05:07:21
$(window).height() 给出高度视口而不是滚动高度。$(document).height() 给出了真实的滚动高度,正如 Aidamina 所建议的。
2021-04-03 05:07:21
我刚刚在文档中遗漏的数字;搜索了他们,但坦率地说,他们的组织对我来说毫无意义(我想仍然在 Mootools 中思考)。谢谢!
2021-04-06 05:07:21
我经常惊讶于像这样简单的事情吸引了多少赞成票,但由于我本周已经看过两次,所以再+1
2021-04-11 05:07:21

来自http://api.jquery.com/height/(注意:window和document对象的用途区别)

$(window).height();   // returns height of browser viewport
$(document).height(); // returns height of HTML document

来自http://api.jquery.com/scrollTop/

$(window).scrollTop() // return the number of pixels scrolled vertically

纯JS

window.innerHeight
window.scrollY

比 jquery 快 10 倍以上(并且代码大小相似):

在此处输入图片说明

在这里你可以在你的机器上进行测试:https : //jsperf.com/window-height-width

window.scrollY, 获取滚动顶部高度
2021-04-06 05:07:21
$(window).height()

$(window).width()

jquery 还有一个插件来确定元素位置和偏移量

http://plugins.jquery.com/project/dimensions

滚动偏移 = 元素的 offsetHeight 属性

谢谢,约瑟夫。这不是我一直在寻找的,因为我试图避免使用另一个插件,但是您让我朝着正确的方向进行了搜索。最后,事实证明我真正需要的是 '$(window).scrollTop()' 来确定有多少页面滚动过视口以相应地调整元素。
2021-04-07 05:07:21

如果您需要滚动到元素的某个点。您可以使用 Jquery 函数向上/向下滚动它。

$('html, body').animate({
                scrollTop: $("#div1").offset().top
            }, 'slow');