Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1258818660
Wito
2009-11-21 18:51
2010.01.17
Рекурсивный обход дерева


15-1258526556
ZeroDivide
2009-11-18 09:42
2010.01.17
Исключить упоминание о боге из гимна


15-1258407015
Юрий
2009-11-17 00:30
2010.01.17
С днем рождения ! 17 ноября 2009 вторник


2-1259123521
Ohotnic
2009-11-25 07:32
2010.01.17
Компонент MRIM


15-1258140062
Германн
2009-11-13 22:21
2010.01.17
Как жить сегодня с тремя устройствами IDE?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский