Как определить высоту и положение прокрутки окна в 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
Нейл
41

с http://api.jquery.com/height/ (примечание: разница между использованием окна и объекта документа)

$(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
Aidamina
источник
8

Чистый JS

window.innerHeight
window.scrollY

более чем в 10 раз быстрее, чем jquery (и код имеет аналогичный размер):

введите описание изображения здесь

Здесь вы можете выполнить тестирование на своем компьютере: https://jsperf.com/window-height-width

Камил Келчевски
источник
window.scrollY, получить высоту прокрутки
xgqfrms
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');
dush88c
источник