Сейчас: 08:45:41   24-го апреля 2024 г.
UsefulScript.ruСкриптыСложные менюВыпадающее простое меню
177
549

Скрипт простого выпадающего вертикально меню

Предлагаем Вам сделать выпадающее вертикально меню, основной особенностью которого является то, что изначально видны только основные его разделы. При наведении курсора мышки на один из разделов (пунктов) меню, ниже появляется список с подразделами.


Для демонстрации работы скрипта, создающего выпадающее вертикально меню, обратите внимание на меню, расположенное чуть ниже. Чтобы понять, как оно работает, наведите курсор мышки на один из заголовков меню:


Основные разделы
Скрипты
Хитрости

Чтобы получить точно такое же меню, как показано выше, для начала вставьте в шапку своего сайта (между тегами <head> и </head>) следующие стили:

HTML код:
<style type="text/css">
    .
tab_menu width100%; }
    .
tab_menu div padding3pxcursorpointer; }
    .
tab_green background-color#00BB00; font-weight: bold; }
    
.hide visibilityhidden; }
    .
show visibilityvisiblebackground-color#E8FED8; }
</style>

Потом необходимо добавить JavaScript код, который будет при наведении курсора мышки на разделы меню показывать подразделы и скрывать их, когда курсор мышки покидает область меню. Для этого добавьте на Вашу страничку следующий код:

JavaScript код:
<script type="text/javascript">
 function 
show_Obj1() { document.getElementById('div1').className='show'; }
 function 
hide_Obj1() { document.getElementById('div1').className='hide'; }
 function 
show_Obj2() { document.getElementById('div2').className='show'; }
 function 
hide_Obj2() { document.getElementById('div2').className='hide'; }
 function 
show_Obj3() { document.getElementById('div3').className='show'; }
 function 
hide_Obj3() { document.getElementById('div3').className='hide'; }
</script>

Далее, в том месте Вашего сайта, где будет располагаться выпадающее меню, необходимо добавить описание разделов и подразделов меню следующим образом:

HTML код:
<table class="tab_menu">
<
tr style="vertical-align: top;"><td>
 <
div class="tab_green" onmouseover="show_Obj1()" onmouseout="hide_Obj1()">
  
Основные разделы
 
</div>
 <
div id="div1" onmouseover="show_Obj1()" onmouseout="hide_Obj1()" class="hide">
  <
a href="index.php">Главная</a><br>
  <
a href="news.php">Новости сайта</a><br>
  <
a href="plans.php">Планы развития</a>
 </
div>
</
td><td>
 <
div class="tab_green" onmouseover="show_Obj2()" onmouseout="hide_Obj2()">
  
Скрипты
 
</div>
 <
div id="div2" onmouseover="show_Obj2()" onmouseout="hide_Obj2()" class="hide">
  <
a href="shadow_text.php">Скрипт тени к тексту</a><br>
  <
a href="gradient.php">Градиентная заливка текста</a><br>
  <
a href="simple_menu.php">Простое меню</a>
 </
div>
</
td><td>
 <
div class="tab_green" onmouseover="show_Obj3()" onmouseout="hide_Obj3()">
  
Хитрости
 
</div>
 <
div id="div3" onmouseover="show_Obj3()" onmouseout="hide_Obj3()" class="hide">
  <
a href="create_rss.php">Как сделать RSS-ленту</a><br>
  <
a href="no_www.php">Убираем www из адреса сайта</a>
 </
div>
</
td></tr>
</
table>

Если Вы все сделали так, как написано в данной теме, то у Вас должно получиться точно такое же выпадающее вертикально меню, как и в нашем примере, показанном выше.

Дата создания: 19:23:31 14.10.2011 г.
Дата обновления: 21:34:55 04.04.2013 г.
Посещений: 43638 раз(а).

Комментарии посетителей (18 шт.):
Василий
0
# 118
(23:01:16  17.04.2012 г.)

Жаль, что при наведении курсора ничего не работает, а хотелось бы посмотреть, как это работает, прежде чем устанавливать
Ответить

Administrator
2
# 119
(23:19:02  17.04.2012 г.)

Василий, вероятно у Вашего браузера отключена поддержка JavaScript. Включите JavaScript, либо воспользуйтесь другим браузером (даже в IE8 работает).
Ответить

Олег
3
# 134
(02:09:10  07.05.2012 г.)

В Firefox 12 с включенными скриптами отказывается работать.
Ответить

Administrator
4
# 135
(13:27:22  07.05.2012 г.)

Олег, не работает у Вас на сайте или наш пример тоже? Изначально выпадающее меню видно или нет? Проверьте, добавили ли Вы между тегами <head> и </head> следующее:
<style>
.tab_menu { width: 100%; }
.tab_menu div { padding: 3px; cursor: pointer; }
.hide { visibility: hidden; }
.show { visibility: visible; }
</style>
Ответить

Олег (другой)
-1
# 261
(20:26:17  12.08.2012 г.)

В Mozilla Firefox скрипт "простого выпадающего вертикально меню" почему-то не работает. Ваш пример работает во всех браузерах, кроме Firefox'а.
Между тегами <head> и </head> скрипт поставить не забыл:
<style>
.tab_menu { width: 100%; }
.tab_menu div { padding: 3px; cursor: pointer; }
.hide { visibility: hidden; }
.show { visibility: visible; }
</style>
Объясните, пожалуйста, в чём загвоздка?
P.S. Всё, что мог, перепробовал - сдаюсь.
Ответить

Administrator
3
# 263
(21:06:29  13.08.2012 г.)

Олег, косяк нашел. Firefox не понимает коллекцию all.
Статью подправил, теперь скрипт меню работает и в Firefox.
Ответить

Акалаха Аргус
1
# 968
(07:12:40  13.07.2013 г.)

Спасибо, полезная и простая фича. Еще бы время выпадения чуть уменьшить для мягкости просмотра, чтобы не выпадало, а раскрывалось. Как такое решение реализуется и не нагромоздится ли сам код?
Ответить

Administrator
0
# 970
(21:22:47  13.07.2013 г.)

Вот сделал в виде отдельной темы - Выпадающее меню на jQuery
Думаю, многим может пригодиться.
Ответить

Владислав
-1
# 1164
(00:22:36  29.09.2013 г.)

Спасибо за меню! Как сделать, чтобы меню, которое выпадает было на всю ширину.
Ответить

Administrator
0
# 1166
(00:30:27  29.09.2013 г.)

Поменяйте стиль .tab_menu { width: 100%; }
Ответить

Максим
0
# 1749
(19:02:18  13.07.2014 г.)

Скажите пожалуйста, как сделать не три пункта меню, а допустим пять?
Ответить

Жора Критик
-1
# 2160
(18:48:12  26.12.2014 г.)

Это горизонтальное меню, а не вертикальное!!!
Ответить

Administrator
1
# 2161
(19:38:46  26.12.2014 г.)

А где написано, что оно вертикальное? Скрипт выпадающего вертикально меню и вертикальное меню - это немного разные понятия.
Ответить

Андрей
1
# 2247
(20:26:59  05.02.2015 г.)

Все работает, спасибо, а для тех, кто пишет что не работает - читайте правильно и делайте не кривыми руками.
Ответить

Николай
-1
# 2277
(17:21:51  26.02.2015 г.)

Как сделать чтобы выпадающее меню не съедало место внизу под свое будущее выпадение?
Ответить

Administrator
0
# 2278
(20:10:38  26.02.2015 г.)

Добавьте в стили .hide и .show следующее: position: absolute;
Ответить

лоя
0
# 2567
(11:15:52  09.07.2015 г.)

А как сделать, чтобы когда оно выпадало, оно было поверх остального?
Ответить

Ханиф
1
# 3264
(14:43:19  09.06.2016 г.)

Пропиши в стилях z-index: 99999;
Ответить

Закрыть
Ваше имя:
521 + 6 =
Добавить комментарий:
Ваше имя:
521 + 6 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 6

Как Вы узнали о нашем сайте?