|
Помогите разобраться в коде динамического менюОбсуждение темы Помогите разобраться в коде динамического меню в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Скачал с одного сайта исходник динамического меню. Естественно хочу переделать его. Поэтому пытаюсь в нём разобраться. Но мои знания в JavaScript и html ... |
|
Опции темы |
10.01.2006, 16:29 | #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; } |
|
15.01.2006, 15:40 | #2 |
|
Ты думаешь кто то бедет это разгребать ???
Вот программы для создания меню, не заморачуй себе голову: DHTML Menu Builder 4.0 Xara Menu Maker v1.1818 А поиском искал, вот первая же ссылка в Гугле http://www.nattisoft.de/html/classNMenu.html |
|
17.01.2006, 13:11 | #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 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|