Показать сообщение отдельно
  #5 (permalink)  
Старый 11.11.2018, 08:18
Новичок на форуме
Отправить личное сообщение для Filinvit Посмотреть профиль Найти все сообщения от Filinvit
 
Регистрация: 27.10.2018
Сообщений: 8

Сообщение от Filinvit Посмотреть сообщение
Только координата меняется от прокрутки страницы, а надо от некой фиксированной точки - в идеале или от верха родительского слоя <div>, или от верха страницы. Для этого рекомендуют использовать window.pageYOffset. Только я не пойму, как его приставить к .getBoundingClientRect().bottom и где указывать нулевую прокрутку?
Кажется, я понял, как эту часть реализовать. Я себе совсем иначе представлял принцип работы этой функции, а оказалось просто:

var LastChildOfMainContentBorderBottom = window.pageYOffset + document.querySelector("div.main .main-content .border").lastElementChild.getBoundingClientRect().bottom;


window.pageYOffset - измеряет, на сколько прокручена страница по-вертикали.
document.querySelector("div.main .main-content .border").lastElementChild.getBoundingClientRect() .bottom; - измеряет нижнюю координату слоя div с классом border относительно окна просмотра (верхнего левого угла, если я правильно понял?).

Каждая из этих функций в зависимости от прокрутки страницы дает разный результат. Но их сумма одинакова, как бы не была прокручена страница, и является вертикальной координатой низа слоя с классом border относительно верха окна, что мне и нужно.

Последний раз редактировалось Filinvit, 11.11.2018 в 08:21.
Ответить с цитированием