Показать сообщение отдельно
  #5 (permalink)  
Старый 18.07.2009, 13:35
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

у меня с border'ом были проблемы в ff. Смотрим mootools:
getOffsets: function(){     
        if (Browser.Engine.trident){
            var bound = this.getBoundingClientRect(), html = this.getDocument().documentElement;
            var isFixed = styleString(this, 'position') == 'fixed';
            return {
                x: bound.left + ((isFixed) ? 0 : html.scrollLeft) - html.clientLeft,
                y: bound.top +  ((isFixed) ? 0 : html.scrollTop)  - html.clientTop
            };
        }

        var element = this, position = {x: 0, y: 0};
        if (isBody(this)) return position;

        while (element && !isBody(element)){
            position.x += element.offsetLeft;
            position.y += element.offsetTop;

            if (Browser.Engine.gecko){
                if (!borderBox(element)){
                    position.x += leftBorder(element);
                    position.y += topBorder(element);
                }
                var parent = element.parentNode;
                if (parent && styleString(parent, 'overflow') != 'visible'){
                    position.x += leftBorder(parent);
                    position.y += topBorder(parent);
                }
            } else if (element != this && Browser.Engine.webkit){
                position.x += leftBorder(element);
                position.y += topBorder(element);
            }

            element = element.offsetParent;
        }
        if (Browser.Engine.gecko && !borderBox(this)){
            position.x -= leftBorder(this);
            position.y -= topBorder(this);
        }
        return position;
    },
Ответить с цитированием