Форум: "Прочее";
Текущий архив: 2010.01.17;
Скачать: [xml.tar.bz2];
ВнизПозиционирование в JavaScript Найти похожие ветки
← →
И. Павел © (2009-11-14 11:53) [0]Здравствуйте.
Пытаюсь сделать всплывающее меню при подведении мыши к пункту верхнего меню страницы. Проблема заключается в том, что вся страница помещена в <div align="center"></div>. При определении левой верхней позиции всплывающего меню можно, конечно, использовать event.x/event.y - но это текущая позиция мыши, а мне хотелось бы выводить меню так, чтобы его левая граница совпадала с левой границей ссылки, при нажатии на которую открывается меню. Подскажите, пожалуйста, как это сделать?
PS:Если вопрос кажется запутанным, объясню проще: скорее всего мой вопрос состоит в определении расстояния от левого края браузера до правого края сайта, заключенного в теги <div align="center"></div>
← →
И. Павел © (2009-11-14 11:55) [1]
> до правого края сайта, заключенного в теги
Извиняюсь, описка - должно быть - "до левого края браузера".
← →
palva © (2009-11-14 12:11) [2]Всплывающее подменю должно иметь абсолютное позиционирование, его положение задается в координатах относительно родительского контейнера (обычно это пункт меню верхнего уровня). Родительский контейнер должен иметь позиционирование отличное от static. Если в цепочке родительских таких контейнеров нет, то координаты отсчитываются от верхнего левого угла страницы. Вот и все правила. Javascript здесь обычно не нужен, если это не динамическое меню.
← →
И. Павел © (2009-11-14 12:18) [3]
> Всплывающее подменю должно иметь абсолютное позиционирование
- у меня так и есть.
> его положение задается в координатах относительно родительского
> контейнера
Не совсем понял (точнее совсем не понял) - если меню имеет абсолютные координаты - то о каком родителе идет речь? Верхнее меню у меня представляет из себя несколько ссылок.
> Если в цепочке родительских таких контейнеров нет, то координаты
> отсчитываются от верхнего левого угла страницы
В том то и дело, что не получается отсчитывать координаты от верхнего левого угла страницы, так как мешает <body><div align="center">...</div></body> - у которого elem.offsetLeft=0.
← →
И. Павел © (2009-11-14 12:40) [4]Нашел выход - определяю начало страницы как (document.width - 980)/2.
Если у кого-нибудь появится другая идея по этому поводу - буду рад, так как в моем примере выравнивается не совсем точно(но это мелочи).
← →
palva © (2009-11-14 13:11) [5]
> мешает <body><div align="center">...</div></body>
Определенно вы что-то путаете. У меня ничего не мешает.<html>
<body><div align="center" style="width:300;background-color:yellow; margin: auto;">
...<br>...<br>...<br>...<br>...<br>...<br>...<br>
<div style="background-color:blue; position: absolute; left:20px;top:50px;width:100px;height:100px" />
</div></body>
</html>
Я уж не спрашиваю, для чего у вас тэг div имеет align="center" и на каком браузере вы это пробуете.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.01.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c