пятница, февраля 02, 2007

Определение координат самой правой видимой в окне браузера точки

Улучшая поведение меню FeedКнопки (см. предыдущий пост) столкнулся с проблемой: как определить координаты самой правой видимой в окне браузера точки (или самой нижней)? Да еще что бы это работало в IE, FireFox и Opera.

Решение для Internet Explorer:

Объект, представляющий весь контент окна в разных режимах рендеринга разный. Делаем служебную функцию, возвращающую нужный элемент:

function GetIEDocumentElement()
{
return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}

Теперь определяем адрес самой правой видимой в окне браузера точки (самая нижняя определяется по аналогии):

var rightEdge = GetIEDocumentElement().scrollLeft + GetIEDocumentElement().clientWidth;

 

Для FireFox и Oper'ы проще:

var rightEdge = window.pageXOffset + window.innerWidth;

Ярлыки: ,