Как определить расстояние от самого верха div до верха текущего экрана? Мне просто нужно расстояние в пикселях до верхней части текущего экрана, а не до верхней части документа. Я пробовал кое-что вроде .offset()
и .offsetHeight
, но никак не могу осознать это. Спасибо!
javascript
jquery
Джоэл Экрот
источник
источник
el.getBoundingClientRect().top+window.scrollY
el.getBoundingClientRect().top
. Добавление позиции прокрутки увеличивает расстояние до верха документа. developer.mozilla.org/de/docs/Web/API/Element/…Ответы:
Вы можете использовать,
.offset()
чтобы получить смещение по сравнению сdocument
элементом, а затем использоватьscrollTop
свойствоwindow
элемента, чтобы узнать, как далеко вниз по странице прокрутил пользователь:Теперь
distance
переменная содержит расстояние от верха#my-element
элемента до верхнего сгиба.Вот демонстрация: http://jsfiddle.net/Rxs2m/
Обратите внимание, что отрицательные значения означают, что элемент находится выше верхнего сгиба.
источник
distance
переменную, чтобы узнать, имеет ли она значение,120
но я бы рекомендовал проверять диапазон, а не точное число. Если, например, вы прокручиваете колесиком мыши, вы вполне можете пропустить более 120. Так что, если вы пытаетесь применить какой-то CSS или что-то еще, когда элемент находится в пределах 120 пикселей от верхнего сгиба, тогда, возможно, используйтеif (distance < 120) { /* do something */}
. Вот обновленная демонстрация: jsfiddle.net/na5qL91oVanilla:
Откройте консоль браузера и прокрутите страницу, чтобы увидеть расстояние.
источник
distanceToTop
возвращается относительное значение (может быть даже отрицательным, если пользователь прокрутил страницу назад). Чтобы принять это во внимание, используйтеwindow.pageYOffset + someDiv.getBoundingClientRect().top
Этого можно достичь исключительно с помощью JavaScript .
Я вижу, что ответ, который я хотел написать, получил от lynx в комментариях к вопросу.
Но я все равно напишу ответ, потому что, как и я, люди иногда забывают читать комментарии.
Итак, если вы просто хотите получить расстояние до элемента (в пикселях) от верхней части окна экрана, вот что вам нужно сделать:
используйте getBoundingClientRect ()
Это оно!
Надеюсь, это кому-то поможет :)
источник
Я использовал это:
код:
источник
Я использовал эту функцию, чтобы определить, виден ли элемент в окне просмотра
Код:
источник