Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.17;
Скачать: CL | DM;

Вниз

Позиционирование в 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
3-1233213892
Ruslan777
2009-01-29 10:24
2010.01.17
Клиент серверное приложение!


2-1259427836
sagitt
2009-11-28 20:03
2010.01.17
Не работает RefResh под Vista


15-1258353428
Дмитрий С
2009-11-16 09:37
2010.01.17
Вопрос админам. Как правильно настроить отправку почты.


2-1258818660
Wito
2009-11-21 18:51
2010.01.17
Рекурсивный обход дерева


2-1259206130
koha!
2009-11-26 06:28
2010.01.17
Удобно ли использовать?