Главная страница
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.015 c
10-1161933035
incms
2006-10-27 11:10
2010.01.17
Онибка при вызове метода интерфейса


15-1258320614
Юрий
2009-11-16 00:30
2010.01.17
С днем рождения ! 16 ноября 2009 понедельник


2-1259003015
AndrewGj
2009-11-23 22:03
2010.01.17
MsWord


3-1233312359
Димон
2009-01-30 13:45
2010.01.17
ПОМОГИТЕ С ЦИКЛОМ


2-1259322314
andrewtitoff
2009-11-27 14:45
2010.01.17
TrayIcon1.ShowBalloonHint