Как определить высоту и положение прокрутки окна в jQuery?


179

Мне нужно получить высоту окна и смещение прокрутки в jQuery, но мне не повезло найти это в документах jQuery или Google.

Я на 90% уверен, что есть способ получить доступ к height и scrollTop для элемента (предположительно включая окно), но я просто не могу найти конкретную ссылку.


2
Как насчет без JQuery?
Коста

@Costa Это, вероятно, было задано в другом месте на StackOverflow, и если нет, то оно заслуживает отдельного вопроса.
Один карандаш

Ответы:


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

11
$ (window) .height () дает область просмотра высоты, а не высоту прокрутки. $ (document) .height () дает реальную высоту прокрутки, как предложила Айдамина.
Джонатан

Я часто поражаюсь тому, сколько простых голосов, подобных этому, привлекает внимание, но так как я уже дважды смотрел это на этой неделе, у меня есть еще +1
Нейл



6
$(window).height()

$(window).width()

Существует также плагин для jquery, чтобы определить местоположение элемента и смещения

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

scrolling offset = offsetHeight свойство элемента


1
Спасибо, Джозеф. Это не совсем то, что я искал, так как пытался избежать использования другого плагина, но вы заставили меня искать в правильном направлении. В итоге получается, что мне действительно нужно было $ (window) .scrollTop (), чтобы выяснить, какая часть страницы прокрутилась за окном просмотра, чтобы соответствующим образом настроить элементы.
DA.

0

Если вам нужно прокрутить до точки элемента. Вы можете использовать функцию Jquery для прокрутки вверх / вниз.

$('html, body').animate({
                scrollTop: $("#div1").offset().top
            }, 'slow');
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.