Вертикальное раскрывающееся меню
Если на сайте мало места, но очень хочется разместить большое количество пунктов в меню, к нам на помощь приходит вертикальное раскрывающееся меню. Данное меню впишется практически в любой дизайн сайта, конечно при условии визуального изменения под стиль сайта. Ну хватит слов, перейдем к делу, а точнее к коду.
CSS-код:
#menu_body {
background:#81A192;
width:200px
}
#menu_body ul li {
list-style-type:none;
border-bottom:1px solid #fff;
margin-left:-40px;
padding-left:7px
}
#menu_body ul li a {
color:#fff;
font-family:verdana,arial,sans-serif;
text-decoration:none
}
#menu_body ul li ul li {
border:0;
list-style-type:square;
color:#fff;
list-style-position:inside
}
#menu_body ul li ul {
border-top:1px solid #fff;
margin-left:-7px;
padding-left:50px
}
JavaScript: (добавляем в head после CSS)
var id_menu = new Array('sub_menu_1','sub_menu_2','sub_menu_3');
function allclose() {
for (i=0; i < id_menu.length; i++){
document.getElementById(id_menu[i]).style.display = "none";
}
}
function openMenu(id){
for (i=0; i < id_menu.length; i++){
if (id != id_menu[i]){
document.getElementById(id_menu[i]).style.display = "none";
}
}
if (document.getElementById(id).style.display == "block"){
document.getElementById(id).style.display = "none";
}else{
document.getElementById(id).style.display = "block";
}
}
В строке
var id_menu = new Array('sub_menu_1','sub_menu_2','sub_menu_3');
нужно добавить значений “sub_menu” столько, сколько групп меню будет, т.е. если будет 10 групп раскрывающихся меню, то здесь должны быть прописаны все 10 значений: sub_menu_1′,’sub_menu_2′,’sub_menu_3′,’sub_menu_4′,’sub_menu_5′ и т.д. Соответственно и HTML код должен содержать 10 блоков, иначе будут проблемы а работе.
В <body> добавляем вызов функции:
HTML-код:
<body onload="allclose()">
И в конце само тело нашего меню.
HTML-код:
<div id="menu_body">
<ul>
<li><a href="#" onclick="openMenu('sub_menu_1');return(false)">menu 1</a>
<ul id="sub_menu_1">
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
<li><a href="#">sub menu 7</a></li>
</ul>
</li>
<li><a href="#" onclick="openMenu('sub_menu_2');return(false)">menu 2</a>
<ul id="sub_menu_2">
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
<li><a href="#">sub menu 7</a></li>
</ul>
</li>
<li><a href="#" onclick="openMenu('sub_menu_3');return(false)">menu 3</a>
<ul id="sub_menu_3">
<li><a href="#">sub menu 1</a></li>
<li><a href="#">sub menu 2</a></li>
<li><a href="#">sub menu 3</a></li>
<li><a href="#">sub menu 4</a></li>
<li><a href="#">sub menu 5</a></li>
<li><a href="#">sub menu 6</a></li>
<li><a href="#">sub menu 7</a></li>
</ul>
</li>
</ul>
</div>
Пример, того что получится, можно посмотреть здесь.
Работоспособность:
Internet Explorer 8 
Firefox 3.5.4 
Opera 9.64 
При оставлении комментария, пожалуйста, воздержитесь от написания ссылок на сторонние ресурсы. Все комментарии фильтруются как плагинами так и вручную. Не тратьте своё и моё время.
Спасибо за понимание!
Очень хорошее меню, давно искал такое. Большое спасибо!
Добрый день!
Очень хочется эту менюшку, но у меня не работает…
я не профессионально занимаюсь html и css, но вроде все сделал верно…
не могли бы Вы мне помочь в этом?
Георгий, я Вам с радостью помогу, но для начала мне нужно увидеть Ваше меню, чтобы понять в чем проблема.
Здравствуйте!
я тоже очень хотела бы сделать такое меню,но пока не получается.меню делаю не основное,а для категорий раздела в каталоге статей.из вашей статьи смогла только последний пункт сделать,а остальные-мозгов не хватает че куда поставить……..сайт мой на ucoz.вот адрес:http://salon-exclusive.my1.ru/publ
Очень надеюсь на вашу помощь,пожалуйста!
Что, конкретно, вызывает затруднения?
Куда ставить эти фрагменты:
JavaScript: (добавляем в head после CSS)—–(ГДЕ ЭТО?)
и этот:
HTML-код:
???????????????
Нужно найти в коде закрывающий тэг
и добавить перед ним код
HTML-код нужно добавить между тэгами
в нужное Вам место.
ВОТ ТАКАЯ СТРАНИЦА БЫЛА:
А ВТОРОЙ КОД ТОГДА КУДА СТАВИТЬ????(ИЗВИНИТЕ,ПОЖАЛУЙСТА,ЧТО Я ТАКАЯ ТУПАЯ!)
Нужно пользоваться HTML редактором, а не визуальным.
так я в визуальный и не заходила((((((((((((((
Вы не могли бы зайти на мой сайт и глянуть,что я не так делаю?я вроде сейчас поставила эти 2 кода-но меню не изменилось(((((
1. Тэг body должен быть один на странице, у вас их два. Второй добавлять не нужно, нужно отредактировать первый.
2. Я не нашел у Вас в коде JavaScript который нужен для работы меню.
3. Я не нашел у Вас CSS код для меню.
Нужно ставить все коды которые здесь написаны, а не только два.
Я установил это меню для теста у себя, _http://jemand.ucoz.net, работает, если всё сделать правильно.
КУДА ЗДЕСЬ СТАВИТЬ JavaScript??????
Скажите как вы редактируете страницу? Перечислите все пункты куда заходите для редактирования.
Я Вам написал куда вставлять JS.
ОЙ!!!!!!!ВСЕ ПОЛУЧИЛОСЬ!!!СПАСИБО,ЧТО ТАК ДОЛГО ТЕРПЕЛИ МОЙ БРЕД! СТОИЛО МНЕ ДОБАВИТЬ КОД В CSS И ВСЕ ПОЛУЧИЛОСЬ!!СПАСИБО ВАМ ОГРОМНОЕ!А СКАЖИТЕ ЕЩЕ ,ПОЖАЛУЙСТА, КАК СДЕЛАТЬ ФОН НЕ ЗЕЛЕНЫМ,А ПРОЗРАЧНЫМ????
Фон настраивается в CSS.
помогите, плз. вот страница сайта. менюшка не пашет(((( еще хотелось бы убрать эти квадраты возле ссылок и заменить их на что то вроде >
http://affliction-russia.ru/mensstees.php
подскажите, пожалуйста, что необходимо изменить, что бы при нажатии на пункты в открывшемся меню, оно не закрывалось, но закрывалось, если переходишь к другому меню????