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


179

我需要掌握jQuery窗口的高度和滚动偏移量,但是我在jQuery文档或Google中没有发现任何运气。

我90%肯定有一种方法可以访问元素的height和scrollTop(大概包括窗口),但是我只是找不到特定的引用。


2
没有jQuery怎么办?
哥斯达黎加

@Costa这可能已经在StackOverflow的其他地方被问到了,如果不是,那应该是它自己的问题。
一个蜡笔小新2015年

Answers:


296

从jQuery Docs:

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

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


1
我刚在文档中错过的数字;搜索了他们,但坦率地说,他们的组织对我毫无意义(我想仍然是在Mootools中思考)。谢谢!
一支蜡笔

即使它是在较早版本中添加的,它也不适用于jQuery 1.3.2的任何浏览器。就是这样,或者我的代码有问题
Philluminati 2010年

11
$(window).height()给出高度视口,而不是滚动高度。$(document).height()给出实际的滚动高度,如Aidamina建议的那样。
乔纳森

我经常对如此吸引人的简单事物感到惊讶,但是由于我本周已经看过两次,所以再加+1
Neil



6
$(window).height()

$(window).width()

jQuery还有一个插件可以确定元素的位置和偏移量

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

滚动的offset =元素的offsetHeight属性


1
谢谢,约瑟夫。尝试避免使用其他插件时,这并不是我一直在寻找的东西,但是您却在寻找正确的方向。最后,事实证明,我真正需要的是'$(window).scrollTop()'来计算出有多少页面滚动过视口以相应地调整元素。
DA。

0

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

$('html, body').animate({
                scrollTop: $("#div1").offset().top
            }, 'slow');
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.