Ответ 1
В отличие от других систем, координаты в браузере сверху вниз, это означает, что верхняя часть браузера y = 0.
Существует два свойства элемента DOM для получения позиции элемента на странице. Свойства element.offsetTop
и element.offsetHeight
Вы можете рассчитать пространство между вашим элементом и нижней частью страницы, вычислив element.offsetTop
и window.innerHeight
.
var space = window.innerHeight - element.offsetTop
если вы хотите вычислить пространство между дном вашего элемента и нижней частью окна, вам также нужно добавить высоту элемента.
var space = window.innerHeight - element.offsetTop + element.offsetHeight
Этот расчет иногда необходим. Думайте, что у вас есть процентное позиционирование, и вы хотите знать положение своего элемента по пикселям, чтобы что-то сделать. Например, у вас есть div, расположенный вот так:
div{
width:300px;
height:16.2%;
position:absolute;
top: 48.11%;
border:3px dotted black;
}
Затем вы хотите узнать, когда div находится рядом с окном браузера, чтобы изменить его цвет:
var div = document.querySelector('div'),
space = innerHeight - div.offsetTop + div.offsetHeight;
window.onresize = function(){
space = innerHeight - div.offsetTop + div.offsetHeight;
if(space < 200){
div.style.background = 'blue';
}
};