Регистрация
Вход через соцсети
Восстановление пароля

выпадающее меню

Новый топик
15.06.2012, 06:02
Ответить | Цитировать
Гость
Гость

только начал осваивать netcat, если не сложно, поделитесь опытом. На данном сайте горизонтальное выпадающее меню, как собрать такое же? или ссылочку дайте на материал для изучения. Никак вкурить не могу. Рукописно не раз реализовывал, а в неткэт никак не получается. Основная загвоздка в том, что в слишком замудренно написанном мануале сумел разобраться только во введении многоуровневых меню, где подразделы выводятся лишь при входе в разделы их содержащие. по этому принципу удалось почти реализовать, но согласитесь, неудобно заходить в раздел а потом только получать выпадающее меню... как обойти это возможно?
15.06.2012, 08:11
Ответить | Цитировать
llkp
Ruslan Kimov

Зарегистрирован:
2010-08-23
Сообщений: 81

Добрый день.

Шаблон:
Код:
$menu[1]['prefix'] = "<ul>";
$menu[1]['suffix'] = "</ul>";
$menu[1]['active'] = "<li class='current'><a href='%URL'>%NAME</a></li>";
$menu[1]['unactive'] = "<li><a href='%URL'>%NAME</a></li>";

$menu[0]['prefix'] = "\";global \$browse_sub;\$result.=\"<ul>";
$menu[0]['suffix'] = "</ul>";
$menu[0]['active'] = "<li class='current'><a href='%URL'>%NAME</a>\".s_browse_level(1,\$menu[1]).\"</li>";
$menu[0]['unactive'] = "<li><a href='%URL'>%NAME</a>\".s_browse_sub(\$data[\$i][Subdivision_ID],\$menu[1]).\"</li>";


Вывод:
Код:
<div class='nav'>
".s_browse_sub(0, $menu[0])."
</div>
17.06.2012, 19:19
Ответить | Цитировать
Гость
Гость

Спасибо. Если не сложно, можно еще описание css, чтоб не думать. В смысле только ту часть, которая будет скрывать и отображать. Под рукой старых шаблонов нет. Вспоминать времени тоже. Заранее благодарю.
03.07.2012, 13:38
Ответить | Цитировать
Евгений

Зарегистрирован:
2012-05-22
Сообщений: 31

Хммм... Лично у меня данный метод не работает. Как сделать вывод меню, аналогичный тому, что здесь?
09.07.2012, 10:28
Ответить | Цитировать
Гость
Гость

ну да, мне тоже в принципе не помогло. я в итоге помнится в качестве переменной карту сайта использовал. вот.
09.07.2012, 10:40
Ответить | Цитировать
Виталий

Зарегистрирован:
2012-07-09
Сообщений: 1

Конкретнее, я делал это так:
код:
Код:
<div id='menu'>".s_browse_sub(0,$browse_map)."</div>
<script>
jsHover = function() {
var hEls = document.getElementById(\"menu\").getElementsByTagName(\"li\");
for (var i=0, len=hEls.length; i<len; i++) {
hEls.onmouseover=function() { this.className+=\" jshover\"; }
hEls.onmouseout=function() { this.className=this.className.replace(\" jshover\", \"\"); }
}
}
if (window.attachEvent && navigator.userAgent.indexOf(\"Opera\")==-1) window.attachEvent(\"onload\", jsHover);
</script>


Описание:
Код:
$browse_map['prefix'] = "<ul>";
$browse_map['unactive'] = "<li><a href=%URL>%NAME</a>\".s_browse_sub(\$data[\$i]
[Subdivision_ID],\$browse_template).\"</li>";
$browse_map['active'] = "<li><a href=%URL>%NAME</a>\".s_browse_sub(\$data[\$i]
[Subdivision_ID],\$browse_template).\"</li>";
$browse_map['suffix'] = "</ul>";

КСС (очень грязный, но разобраться можно):
Код:
#menu {
padding-left: 5;
margin: 0;
margin-top: -10;
}
#menu li {
list-style: none;
float: left;
padding-left: 20;
margin: 0;
position: relative;
}
#menu li ul {
list-style: none;
padding: 0;
margin: 0;
display: none;
position: absolute;
border:solid 1px #1d80b4;
border-radius:7px;
-moz-border-radius:7px;
-webkit-border-radius:7px;
background:-moz-linear-gradient(bottom,#1f91c7, #1d80b4);
background:-webkit-gradient(linear,left bottom, left top, from(#1f91c7), to(#1d80b4));
-moz-box-shadow: 2px 5px 7px #161617;
box-shadow: 2px 5px 7px #161617;

}
#menu li ul li {
float: left;
margin: 0;
padding-top:5;
border-bottom: 1px;
background-color: #1d80b4;

position: relative;
}
#menu li a {
display: block;
color: #fff;
text-decoration: none;
}


#menu li:hover ul, #menu li.jshover ul {
display: block;
background:#1d80b4
}
#menu li:hover, #menu li.jshover {
}
29.07.2012, 20:27
Ответить | Цитировать
Vladzzz

Зарегистрирован:
2012-01-26
Сообщений: 5

Всего-ничего, ошибка определения глобальной переменной. Но и так будет работать, лишь не будет использовать указанный шаблон (menu). Вот так корректно:
Цитата:

Шаблон:
Код:
$menu[1]['prefix'] = "<ul>";
$menu[1]['suffix'] = "</ul>";
$menu[1]['active'] = "<li class='current'><a href='%URL'>%NAME</a></li>";
$menu[1]['unactive'] = "<li><a href='%URL'>%NAME</a></li>";

$menu[0]['prefix'] = "";global $menu;$result.="<ul>";
$menu[0]['suffix'] = "</ul>";
$menu[0]['active'] = "<li class='current'><a href='%URL'>%NAME</a>".s_browse_level(1,$menu[1])."</li>";
$menu[0]['unactive'] = "<li><a href='%URL'>%NAME</a>".s_browse_sub($data[$i][Subdivision_ID],$menu[1])."</li>";


Вывод:
Код:
<div class='nav'>
".s_browse_sub(0, $menu[0])."
</div>
20.10.2014, 10:59
Ответить | Цитировать
Solvedor
Solvedor Studio

Зарегистрирован:
2008-11-30
Сообщений: 3

Попробовал сделать так, как описано, но в результате меню исчезает напрочь, а вместо него просто надпись: .s_browse_sub(0, Array).

Что не так? Вот код меню:

Код:
$top_menu[1]['prefix']   = "<nav id='navigation'><a href='#' class='nav-btn'>HOME<span></span></a><ul>";
$top_menu[1]['suffix'] = "</ul><div class='cl'>&nbsp;</div></nav>";
$top_menu[1]['active'] = "<li><a class='active' href='%URL'>%NAME</a></li>";
$top_menu[1]['unactive'] = "<li><a href='%URL'>%NAME</a></li>";

$top_menu[0]['prefix'] = "";global $top_menu;$result.="<nav id='navigation'><a href='#' class='nav-btn'>HOME<span></span></a><ul>";
$top_menu[0]['suffix'] = "</ul><div class='cl'>&nbsp;</div></nav>";
$top_menu[0]['active'] = "<li><a class='active' href='%URL'>%NAME</a>".s_browse_level(1,$top_menu[1])."</li>";
$top_menu[0]['unactive'] = "<li><a href='%URL'>%NAME</a>".s_browse_sub($data[$i][Subdivision_ID],$top_menu[1])."</li>";


А вот вывод в шаблоне:
20.10.2014, 13:13
Ответить | Цитировать
Solvedor
Solvedor Studio

Зарегистрирован:
2008-11-30
Сообщений: 3

В общем, решение для версии 5.х выглядит так:
Код:

$top_menu[0]['prefix'] = "\";global \$top_menu; \$result.=\"<nav id='navigation'><a href='#' class='nav-btn'>HOME<span></span></a><ul>";
$top_menu[0]['suffix'] = "</ul><div class='cl'>&nbsp;</div></nav>";
$top_menu[0]['active'] = "<li><a class='active' href='%URL'>%NAME</a>\".s_browse_level(1,\$top_menu[1]).\"</li>";
$top_menu[0]['unactive'] = "<li><a href='%URL'>%NAME</a>\".s_browse_sub(\$data[\$i][Subdivision_ID],\$top_menu[1]).\"</li>";

$top_menu[1]['prefix'] = "<nav id='navigation'><a href='#' class='nav-btn'>HOME<span></span></a><ul>";
$top_menu[1]['suffix'] = "</ul><div class='cl'>&nbsp;</div></nav>";
$top_menu[1]['active'] = "<li><a class='active' href='%URL'>%NAME</a></li>";
$top_menu[1]['unactive'] = "<li><a href='%URL'>%NAME</a></li>";


А в шаблоне прописываем:
Код:
<?= s_browse_sub(0, $top_menu[0]) ?>


Только вот меню остается постоянно открытым, а не выпадающим. Как это вылечить?
20.10.2014, 15:31
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Это решение для 4 версии.
Для 5 будет немного иначе
Код:
$top_menu['prefix']   = "<nav id='navigation'><a href='#' class='nav-btn'>HOME<span></span></a><ul>";
$top_menu['suffix'] = "</ul><div class='cl'>&nbsp;</div></nav>";
$top_menu['active'] = "<li><a class='active' href='%URL'>%NAME</a>%NEXT_LEVEL</li>";
$top_menu['unactive'] = "<li><a href='%URL'>%NAME</a>%NEXT_LEVEL</li>";

Код:
<?=nc_browse_sub(0,$top_menu)?>

$top_menu[0]['prefix'], $top_menu[1]['prefix']
Система будет перебирать ключи поочередно к каждому уровню. Это если требуется другой вид иначе достаточно одного как указанно выше без ключей
&nbsp; - без на то причин говорит о неверном подходе к верстке.


Без знания CSS нельзя верстать. JS Код в замену CSS. Стыд и позор.
Код:
#navigation ul li ul {display:none;}
#navigation ul li:hover ul { display:block;}


Такое ощущение что тут дети собрались

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
198 196 2014-10-20 15:31:31 12374
Описание проекта