Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с реализацией менюшек  (Прочитано 7852 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Gear[B.E.A.R.]
Гость
« : 12-02-2004 17:30 » 

Здравствуйте. Пытаюсь реализовать у себя на страничке всплывающее меню (наподобие пуска). Сейчас хочу использовать слои. У меня имеется одна строчка внутри документа, заключенная в параграф:
  <P ONMOUSEOVER="document.all.menu_about.style.visibility='visible';
                                 document.onmousemove=MenuAboutUp;">
  О нас</P>

И есть слой:

<DIV ID="menu_about">
  <A HREF="main.htm">Услуги</A><br>
  <A HREF="main.htm">Цены</A><br>
</DIV>

В стилях определение:
#menu_about {
   float: none;
   right: 80px;
   bottom: 31px;
   width: 150px;
   height: 29;
   background-color: #01C6CC;
   position: absolute;
   border: 1px solid;
   border-color: #146C12;
   border-width: 1;
   color: Aqua;
   padding: 5;
   line-height: 1.2;
   visibility: hidden;
}

Сначала я пытался сделать по-простому, чтоб слой пропадал как только курсор выходит за границы DIV'a. Но мышь терялась уже при наведении на одну из ссылок внутри menu_about (и соответственно пропадало само меню). Я решил поступить иначе: организовал функцию MenuAboutUp(), и при наведении на название меню передавал ей управление движением мыши во всем документе:

document.onmousemove=MenuAboutUp;

Внутри функции я хотел сравнивать координаты мыши event.x и event.y с координатами прямоугольника-слоя-меню. Тут-то и обнаружилась проблема!!!
Я завожу переменную var menu = document.all.menu_about.style, и пытаюсь обратиться: menu.posLeft (ровно как и menu.pixelLeft) и получаю 0!!!!!!!!! Был просто обескуражен. Скажите пожалуйста, что не так!!

З.Ы. Я только пару дней назад стал изучать JavaScript, CSS, DynamicHTML, так что сильно не бейте Улыбаюсь
Записан
Fireworm
Гость
« Ответ #1 : 13-02-2004 07:58 » 

Попробуй
var menu = document.all.menu_about
menu.offsetLeft;
menu.offsetTop;
Записан
Skubent
Гость
« Ответ #2 : 13-02-2004 09:06 » 

Либо включи функции показа и убирания меню на onMouseOver и onMouseOut непосредственно слоя.
Записан
Вопрошающий :)
Гость
« Ответ #3 : 13-02-2004 13:56 » 

2Fireworm: попробую. Сейчас пока нет возможности. Спасибо.

2Skubent: В том-то и дело, что когда ставишь обработку этих событий непосредственно на слой, onMouseOut срабатывает при наведении на одну из ссылок внутри него!!! Ну и, конечно же, все сворачивается.
Записан
Gear[B.E.A.R.]
Гость
« Ответ #4 : 19-02-2004 16:13 » 

Fireworm,  этот код сработал, но только для просмотра. Почему-то эти свойства только для чтения.
Но мне это не очень понадобилось. Все решил с помощью метода contains.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines