Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   положение объекта (https://javascript.ru/forum/misc/2982-polozhenie-obekta.html)

art-danilov 05.03.2009 18:03

положение объекта
 
Добрый день, помогите советом - каким образом лучше получить координаты объекта относительно верхней точки страницы?
Пробовал варианты с offsetheight, clientheight, scrollheight - не помогают.

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

Zibba 05.03.2009 20:43

Цитата:

Сообщение от art-danilov
координаты объекта относительно верхней точки страницы

document.getElementById('el').offsetTop;

Цитата:

Сообщение от art-danilov
Надо растянуть картинку не на 100%х100%, а так, чтобы низ градиентной картинки достигал подвала на малых экранах, когда подвал находится ниже видимой области экрана.

Так вам расстояние от объекта до верхней границы видимой области нужно узнать или высоту видимой области/объекта!?

Kolyaj 05.03.2009 21:25

Цитата:

Сообщение от Zibba
document.getElementById('el').offsetTop;

function getOffsetTop(element) {
    var offset = 0;
    do {
        offset += element.offsetTop;
    } while (element = element.offsetParent);
    return offset;
}

Даже это будет работать не во всех случаях. Во всех случаях будет работать метод getBoundingClientRect, но он есть не во всех браузерах.

Zibba 05.03.2009 21:34

Что то я не учел вложенные элементы, думал топикстартеру нужно узнать положение элемента вложенного в body (а так, да, все немного сложнее :/ )

Kolyaj 05.03.2009 21:55

А собственно кто-нибудь знает, как определить позицию элемента для такой верстки без использования getBoundingClientRect?
body {
    width: 700px;
    position: relative;
    margin: 0 auto;
}

Проблема тут в том, что система координат на странице начинается с body, а он хоть и сдвинут, offsetLeft имеет 0.


Часовой пояс GMT +3, время: 00:11.