ФорумПрограммированиеJavaScript → Выпадающее меню.

Выпадающее меню.

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2008 г. 12:37

    Здравствуйте.Не знал где тему создать,решил тут.Простите если что.

    Суть проблеммы.
    Есть некие элементы на странице,при клике по ним мышкой всплывает меню.
    А при отводе мыши от этого меню оно должно исчезать.
    Должно,но увы не исчезает!
    Чего я тока не пробовал.ONMOUSEOUT куда только не ставил,
    то меню исчезает при попытке навести на нее мышь,то через какое то время пребывания мыши на меню(как будто в диве дыры)
    Нашел способ один.Сздал еще див с z-index: -1; width:100%; и height:expression(document.body.scrollHeight);
    и этому диву указал ONMOUSEOVER="убераем меню"
    Все бы было бы хорошо и отлично,вот только в opere этот див имеет height нулевое значение.
    Вопрос:
    1. Как сделать так,чтоб при появлении меню можно было бы навести мышь,а при отводе ее меню исчезало.
    меню должно исчезать и при отводе мыши с этого элемента.
    2. Как диву задать высоту страницы с wxtnjv скролинга,что бы в опере работало.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2008 г. 12:55, спустя 17 минут 58 секунд

    Пожалуйста, не позвольте мне это релизовать этим убогим кодом!!!

    echo "<div ONMOUSEOVER ='info_clean();' style='position:absolute;top:0px;left:0px;z-index: -1; width:100%; background: #eeeeee;'>";
    echo "<div ONMOUSEOVER ='info_clean();' style='height:340px; width:100%; background: #eeeeee;'>";
    echo "</div>";
    echo $br;
    echo "</div>";

    где $br=<br><br><br><br>… столько раз,сколько элементов.
    height:340px; - откуда начинают выводиться элементы
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 24 августа 2008 г. 13:45, спустя 49 минут 57 секунд

    1. Скрытие меню должно происходить с задержкой, чтобы была возможность перевести курсор собственно на него. Юзай setTimeout.
    2. Сам слой меню тоже должен содержать onmouseout и onmouseover. По последнему откладывается ранее запущенная процедура скрытия.
    3. Статус меню показано/скрыто храни в отдельной переменной.
    4. Топик перенес в раздел по JS - там его место!
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 24 августа 2008 г. 14:14, спустя 28 минут 59 секунд

    AlexB, спорим ты три раза не прав?!

    http://mabp.kiev.ua/ - основная менюшка
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2008 г. 14:18, спустя 4 минуты 53 секунды

    AlexB, ты гений.То что надо,а я извращался=(
    Спасибо огромое!!
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2008 г. 14:21, спустя 2 минуты 48 секунд

    CTAPbIu_MABP, сделал как AlexB посоветовал,все работает.
    Не сомневаюсь что твой метод не хуже.
    Если не трудно,обьясни в чем он заключается?
    Желательно по пунктно,как AlexB
    =)
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 25 августа 2008 г. 1:35, спустя 11 часов 13 минут 59 секунд

    ну по наведению на пункт меню становиться видно его подменю (display=block)
    при переводе мышки в подменю, основное не прячеться потому что ты по сути из него не вышел
    все
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 августа 2008 г. 2:02, спустя 26 минут 50 секунд


    ну по наведению на пункт меню становиться видно его подменю (display=block)
    при переводе мышки в подменю, основное не прячеться потому что ты по сути из него не вышел
    все

    тоже так думал.Но это если  пункт меню всплывает по onmouseover, а не onClick.
    Иначе эффект не предсказуем=)

    Во всяком случае,у меня так
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 25 августа 2008 г. 2:02, спустя

    Ну тоже вариант, другой вопрос при любой ли верстке это удобно? Ведь пункты меню должны быть тогда спозиционированны абсолютно, а если дизайн отцентрован или того хуже резиновый?

    В общем в любом решеннии нюансы найдутся. На всякий случай предлагаю вниманию сообщества свою древнюю реализацию меню. Проверил, вроде IE+Firefox+Opera пашет. В сафари желающие пусть сами проверяют … )))
    Сделано на объектах, так что легко прикручивается к сайту любое количество с друг другом не конфликтующих менюшек + поддержка каскадных выпадений любой вложенности с отслеживанием границ окна.

    Мож кому пригодится.


  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 25 августа 2008 г. 2:19, спустя 16 минут 41 секунду

    AlexB, у меня диз резиновый
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 25 августа 2008 г. 2:40, спустя 21 минуту 36 секунд


    AlexB, у меня диз резиновый
    Ну пункты меню-то жестко стоят. Так же не всегда бывает.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!