|
|||||||
Помогите разобраться в коде динамического менюОбсуждение темы Помогите разобраться в коде динамического меню в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Скачал с одного сайта исходник динамического меню. Естественно хочу переделать его. Поэтому пытаюсь в нём разобраться. Но мои знания в JavaScript и html ... |
![]() |
|
|
Опции темы |
|
|
#1 |
|
|
Скачал с одного сайта исходник динамического меню. Естественно хочу переделать его. Поэтому пытаюсь в нём разобраться. Но мои знания в JavaScript и html не очень глубокие. Поэтому возникли проблемы.
Ответьте, пожалуйста, на какие сможете вопросы. После вопросов я приведу пример кода html файла (без css) и пример кода js файла. А также прикреплю исходники к теме. Вопросы: 1) Что происходит в функциях? getScroll() showmenu(Nmenu) hidemenu(Nmenu) hideOldMenu() make_base_menu() make_sl_menu(Nmenu) make_sl_menus() 2) Что за параметр Nmenu? Для чего он используется? 3) Зачем переменная str в функциях make_base_menu() и make_sl_menu(Nmenu)? Как она используется? Код:
<html>
<head>
<title>WOweb.ru - Scripts - JavaScript - LVM 1.0</title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script src="vertical_menu_example.js"></script>
<script>document.write(make_sl_menus());</script>
</head>
<body bgcolor="#EDEDED">
<script>
document.write(make_base_menu()); // Формирование главного меню
</script>
</body>
</html>
Код:
base_menu_name='Заголовок меню';
moutcolor='#FFFFFF'; // Цвет пункта меню
movercolor='#D0E0FF'; // Цвет пункта меню при наведении курсора
widthOfMenu='160px'; // Ширина меню
var menu=new Array(); // Массив с данными меню
var index=0; // Блок первого пункта меню начинается с "var index=0;"
menu[index] = new Array(
['Пункт меню 1',''],
['http://www.woweb.ru','Пункт подменю 1 Описание'], // Описание не обязательно,
['http://www.woweb.ru','Пункт подменю 2 Описание'], // и вообще формат этой записи - произвольный.
['http://www.woweb.ru','Пункт подменю 3 Описание'],
['http://www.woweb.ru','Пункт подменю 4 Описание'],
['http://www.woweb.ru','Пункт подменю 5 Описание'] // В конце последнего пункта подменю запятой быть не должно!
); // Заканчивается блок вот этим ");"
index++; // Последующие блоки начинаются с "index++;"
menu[index] = new Array(
['Пункт меню 2',''],
['http://fun.woweb.ru','Развлечения Описание'],
['http://www.wolist.ru','Каталог сайтов Описание'],
['http://anekdot.woweb.ru','Анекдоты Описание']
);
index++;
menu[index] = new Array(
['Пункт меню N',''],
['http://paradox.net.ru/','Paradox.net.ru Пример действующего меню'],
['http://paradox.net.ru/photo/','Paradox.net.ru. Фотоальбом Фотообои'],
['http://paradox.net.ru/hardnsoft/','Paradox.net.ru. Hard & Soft Полезные статейки']
);
// Конец массива
var s_name,mn,d_name,hmenu,x,y;
var timerID = null;
function getScroll()
{
scrollXY=document.getElementsByTagName((document.compatMode && document.compatMode == 'CSS1Compat') ? "HTML" : "BODY")[0];
return scrollXY.scrollTop;
}
var oldmenu, oldcell,timerID;
function showmenu(Nmenu)
{
menu='menu'+Nmenu;
cell='d'+Nmenu;
if (oldmenu!=null){document.all(oldmenu).style.visibility='hidden';}
if (oldcell!=null){document.all(oldcell).style.background=moutcolor;}
document.all(cell).style.background=movercolor;
x=155;
y=getScroll()+event.clientY-event.offsetY;
document.all(menu).style.left=x;
document.all(menu).style.top=y;
document.all(menu).style.visibility='visible';
oldmenu=menu;
oldcell=cell;
clearTimeout(timerID);
}
function hidemenu(Nmenu)
{
menu='menu'+Nmenu;
cell='d'+Nmenu;
if (oldcell!=null){document.all(oldcell).style.background=moutcolor;}
document.all(menu).style.visibility='hidden';
}
function hideOldMenu()
{
hidemenu(oldmenu.slice(4));
}
function make_base_menu() // Формирование главного меню
{
str = '<table name=\"basemenu\"';
str += ' id=\"basemenu\"';
str += ' class=\"menuleft\"';
str += ' width=\"'+widthOfMenu+'\"';
str += ' border=\"0\"';
str += ' cellpadding=\"2px\">';
str += ' <tr><td name=\"headlink\"';
str += ' id=\"headlink\"';
str += ' class=\"headmenu\"';
str += ' align=\"center\">';
str += base_menu_name;
str += ' </td></tr>';
for (i=1; i<=menu.length; i++)
{
str_item = ' <tr bgcolor=\"#FFFFFF\">';
str_item += ' <td onmouseover=\"showmenu(' + i + ',event)\"';
str_item += ' onmouseout=\"timerID=setTimeout(\'hidemenu(' + i + ',event)\',1000)\"';
str_item += ' name=\"d' + i + '\" id=\"d' + i + '\">  ';
str_item += menu[i-1][0][0];
str_item += ' </td></tr>';
str += str_item;
}
str +='</table>';
return str;
}
function make_sl_menu(Nmenu) // Формирование подменю
{
itemObj=menu[Nmenu];
str ='<div name=\"menu'+Nmenu+'\"';
str+=' id=\"menu'+(Nmenu+1)+'\"';
str+=' class=\"secondmenu\"';
str+=' onmouseover=\"clearTimeout(timerID)\"';
str+=' onmouseout=\"timerID=setTimeout(\'hidemenu('+(Nmenu+1)+')\',1000)\">';
for (i=1; i<itemObj.length; i++)
{
str_item = ' <a class=\"m\" href=\"';
str_item += itemObj[i][0];
str_item += ' \" target=_blank>';
str_item += itemObj[i][1];
str_item += ' </a>
';
str += str_item;
}
str +='</div>';
return str;
}
function make_sl_menus() // Поочерёдное формирование всех подменю
{
result='';
for (j=0; j<menu.length; j++)
{
result+=make_sl_menu(j);
}
return result;
}
|
|
|
|
|
#2 |
|
|
Ты думаешь кто то бедет это разгребать ???
Вот программы для создания меню, не заморачуй себе голову: DHTML Menu Builder 4.0 Xara Menu Maker v1.1818 А поиском искал, вот первая же ссылка в Гугле http://www.nattisoft.de/html/classNMenu.html |
|
|
|
|
#3 |
|
|
По моему ничего сложного тут нет... просто читай внимательно сам код, и еще, есть два способа вставить меню в страницу: методом подзагрузки и прямой вставкой кода в страницу. Каждый из них по своему хорош и плох... Второй хорошо индексируется поисковиками, второй облегчает загрузку страницы... по моему мнению самая нормальная прога для создания dhtml меню это NAV Studio... а так, задавай вопрос конкретнее...
|
|
|
![]() |
|
|
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Не могу разобраться с меню для сайта | Ishanuee | HTML, CSS, JavaScript | 13 | 12.12.2014 07:33 |
| Помогите разобраться с выпадающим меню | Smatry | HTML, CSS, JavaScript | 4 | 02.10.2010 14:48 |
| Помогите найти ошибку в php коде | 74ivan74 | ASP, Perl, PHP и MySQL | 9 | 30.05.2010 18:13 |
| Что неправильно в коде? Помогите плиз! | spart | Технологии Flash | 3 | 02.02.2008 21:36 |
| Помогите разобраться! | (o)ne | ASP, Perl, PHP и MySQL | 8 | 02.01.2005 17:00 |
|
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|