Я написал небольшую функцию для размещения логотипа посередине между левой стороной окна браузера и (по центру) навигационным меню. Элементы меню заполняются из базы данных, причем первый элемент получает идентификатор item0.
function positionLogo(){
var $menuleft=0;
var $element=document.getElementById('item0');
if ($element.offsetParent) {
do {
$menuleft+=$element.offsetLeft;
} while ($element=$element.offsetParent);
}
var $logoleft=($menuleft/2)-130; // As logo is 260px wide
if ($logoleft<0) {
$logoleft=0;
}
$('#logo').css('left',$logoleft);
}
$(document).ready(function(){
positionLogo();
});
$(window).resize(function(){
positionLogo();
});
Это прекрасно работает, когда окно изменено в размерах, но когда оно впервые запускается при загрузке страницы, позиция, которую он устанавливает, составляет около 20 пикселей слишком далеко вправо (т.е. $ logoleft на 20 больше, чем должно быть). Как только размер страницы изменяется, она переходит в правильное положение.
В данный момент нигде нет в живых, но у кого-нибудь есть идеи? Спасибо!