Я пытаюсь определить положение полосы прокрутки браузера с помощью JavaScript, чтобы решить, где на странице находится текущее представление. Я предполагаю, что мне нужно определить, где находится большой палец на дорожке, а затем высоту большого пальца в процентах от общей высоты дорожки. Я слишком усложняю это, или JavaScript предлагает более простое решение, чем это? Есть идеи по коду?
191
element
иdocument.body
были только примерами). Подробности смотрите в howtocreate.co.uk/tutorials/javascript/browserwindow .window.pageYOffset
, но не могу заставить что-либо работать на IE7. Пробовалwindow.pageYOffset
,document.body.scrollTop
,document.documentElement.scrollTop
,element.scrollTop
document.body
в большинстве современных браузеров - обычно она установленаdocument.documentElement
сейчас. См. Bugs.chromium.org/p/chromium/issues/detail?id=157855 для перехода Chrome.Я сделал это для
<div>
Chrome.Элемент .scrollTop - это пиксели, скрытые в верхней части из-за прокрутки. Без прокрутки его значение равно 0.
Элемент .scrollHeight - это пиксели всего деления.
Элемент .clientHeight - это пиксели, которые вы видите в своем браузере.
будет позиция.
будет максимальным значением для scrollTop .
будет процент прокрутки [от 0 до 1] .
источник
возвращает массив с двумя целыми числами - [scrollLeft, scrollTop]
источник
это вот так :)
источник
Ответ на 2018 :
Лучший способ сделать это - использовать API Intersection Observer .
Смотрите следующий пример кода:
Большинство современных браузеров поддерживают IntersectionObserver , но вы должны использовать polyfill для обратной совместимости.
источник
если вы заботитесь о всей странице. Вы можете использовать это:
источник
Если вы используете jQuery, то для вас есть идеальная функция: .scrollTop ()
документ здесь -> http://api.jquery.com/scrollTop/
примечание: вы можете использовать эту функцию, чтобы получить ИЛИ установить положение.
см. также: http://api.jquery.com/?s=scroll
источник
Вот другой способ получить позицию прокрутки
источник
Я думаю, что следующая функция может помочь получить значения координат прокрутки:
Я получил эту идею из этого ответа с небольшим изменением.
источник