>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Проблемы с сайтами http://forum.mozilla-russia.org/viewforum.php?id=24 >Динамическое меню http://forum.mozilla-russia.org/viewtopic.php?id=13627 |
Vega > 08-11-2006 03:43:30 |
Подскажите! Наваял код. Выделить код Код:<SCRIPT language=Javascript> <!-- function showSubMenu(subMenuId) { document.all[subMenuId].style.visibility = 'visible'; return true; } function hideSubMenu(subMenuId) { document.all[subMenuId].style.visibility = 'hidden'; return true; } //--> </SCRIPT> <STYLE type="text/css"> .subMenuStyle { POSITION: absolute; VISIBILITY: hidden; Z-INDEX: 20; MARGIN-TOP: -1px; MARGIN-LEFT: -1px; CURSOR: auto; } .subMenuStyle2 { POSITION: absolute; VISIBILITY: hidden; Z-INDEX: 20; MARGIN-TOP: -9px; MARGIN-LEFT: -1px; CURSOR: auto; } .subMenuItemStyle_1 { COLOR: #ffffff; CURSOR: pointer; FONT-WEIGHT: bold; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 20px; PADDING-TOP: 3px; TEXT-DECORATION: none; FONT-SIZE: 11px; FONT-FAMILY: Tahoma; FONT-WEIGHT: bold; BACKGROUND-COLOR: #51A4D8; } .subMenuItemStyle_2 { COLOR: #ffffff; CURSOR: pointer; FONT-WEIGHT: bold; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 20px; PADDING-TOP: 3px; TEXT-DECORATION: none; FONT-SIZE: 11px; FONT-FAMILY: Tahoma; FONT-WEIGHT: bold; BACKGROUND-COLOR: #A1C448; } .menu_1 { COLOR: #ffffff; FONT-SIZE: 12px; FONT-FAMILY: Arial; TEXT-ALIGN: center; FONT-WEIGHT: bold; PADDING-TOP: 35px; CURSOR: default; BACKGROUND-COLOR: #51A4D8; } .menu_2 { COLOR: #ffffff; FONT-SIZE: 12px; FONT-FAMILY: Arial; TEXT-ALIGN: center; FONT-WEIGHT: bold; PADDING-TOP: 35px; CURSOR: default; BACKGROUND-COLOR: #A1C448; } </STYLE> <table cellspacing="1" cellpadding="0" border="0"> <tr align="center"> <a Href="#" onmouseover="main_menu_1.className='menu_2'" onmouseout="main_menu_1.className='menu_1'"> <td class=menu_1 onmouseout="hideSubMenu('subMenu1'); "onmouseover="showSubMenu('subMenu1');" width="57" height="64" name="main_menu_1" id="main_menu_1" bgColor=#51A4D8> About</td></a> </tr> <TR> <TD> <TABLE bgColor=#ffffff border=0 cellPadding=0 cellSpacing=1 class=subMenuStyle id=subMenu1 onmouseout="hideSubMenu('subMenu1');" onmouseover="showSubMenu('subMenu1');"> <TBODY> <TR> <A href="#" onmouseover="menu1_1.className='subMenuItemStyle_2'" onmouseout="menu1_1.className='subMenuItemStyle_1'"> <TD bgColor=#51A4D8 class="subMenuItemStyle_1" name="menu1_1" id="menu1_1" noWrap>News</TD> </A></TR> <TR> <A href="arhiv.html" onmouseover="menu1_2.className='subMenuItemStyle_2'" onmouseout="menu1_2.className='subMenuItemStyle_1'"> <TD bgColor=#51A4D8 class="subMenuItemStyle_1" name="menu1_2" id="menu1_2" noWrap>Personal</TD> </A></TR> <TR> <A href="press/" onmouseover="menu1_3.className='subMenuItemStyle_2'" onmouseout="menu1_3.className='subMenuItemStyle_1'"> <TD bgColor=#51A4D8 class="subMenuItemStyle_1" name="menu1_3" id="menu1_3" noWrap>History</TD> </A></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> |
Vega > 08-11-2006 06:50:20 |
Почитал на сайте, оказывается document.all не канает. Выделить код Код:function showSubMenu() { document.getElementById('subMenu1').style.visibility = "visible"; return true; } function hideSubMenu() { document.getElementById('subMenu1').style.visibility = "hidden"; return true; } Работает также. Господа подскажите! У меня мысль такая, что обработчики событий в FF должны быть другие. Выделить код Код:onmouseover="main_menu_1.className='menu_2'" onmouseout="main_menu_1.className='menu_1'" Данное событие в IE меняет цвет ячейки. Ссылки также не работают. Добавлено Срд 08 Ноя 2006 06:53:34 : Так не работает |
Vega > 08-11-2006 10:13:19 |
Нашел на каком-то сайте.
Попробуем. Ну хоть кто нибудь подскажет. |
Lynn > 08-11-2006 16:05:49 |
Честно говоря, просто надоедает объяснять одно и тоже. По этому поводу в инете есть уйма текста. Добавлено Срд 08 Ноя 2006 16:06:28 : |
Vega > 09-11-2006 02:31:38 |
Уважаемый Lynn c таким раскладом нада всех преподавателей уволить, Наличие уймы текста в интернете не значит что все становится понятно.
Чем код Вам не угодил. За ссылки спасибо. |
Vega > 09-11-2006 05:50:08 |
Все оказалось намного проще. Выделить код Код:onmouseout="this.style.backgroundColor = '#51A4D8';" onmouseover="this.style.backgroundColor = '#a1c448';" Данное действо меняет цвет ячейки во всех броузерах. Добавлено Чтв 09 Ноя 2006 05:53:06 : В смысле так В IE работает. |
Azathoth > 09-11-2006 06:15:29 |
Vega
Правильно. Именно так и надо поступить. Они изначально вводят студентов в заблуждение потому что сами неквалифицированы. И это касается не только JavaScript & DOM Model. Этот код просто не правильный. А IE не правильно его понимает. Точнее допускает его использование.
<td onclick="document.location='http://где-то/там/лежала/страничка'"> Мне на самом деле по рукам надо настучать что потакаю Вам в неправильном коде. Самый лучший способ сделать ссылку, это написать: |
Vega > 09-11-2006 07:06:42 |
Azathoth спасибо +1 Добавлено Чтв 09 Ноя 2006 07:08:40 : Так не работает |
Infant > 09-11-2006 07:18:11 |
Круто! Строковое значение прибавить число!! Это прямо из серии: «Что получится если к двум метрам прибавить два литра?». |
Azathoth > 09-11-2006 08:02:16 |
Vega
А что конкретно не работает? Если они должны пропадать, то вместо visibility следует использовать display. visibility просто скрывает элемент, но он остается в потоке и занимает место. Infant
На самом деле тут работает автоматическое приведение типов. Перед сложением num приводится к строке и сложение происходит верно. |
Vega > 09-11-2006 08:14:24 |
Azathoth вопрос в том, что у меня 5 менюшек, которые имеют подменю (которые появляются при наведении мыши). Как пральна записать. document.getElementById('subMenu').style.visibility = "visible"; |
Azathoth > 09-11-2006 08:28:33 |
document.getElementById('subMenu' + num).style.display = "block"; |
Vega > 09-11-2006 09:05:39 |
Error: num is not defined Я каждому меню присвоил Id Вопчем FF ругается |
Azathoth > 09-11-2006 09:11:14 |
Vega
А это откуда в таком случае? |
Vega > 09-11-2006 09:48:48 |
Я в это деле чайник!!! Кстати данная композиция 100% работает |
Azathoth > 09-11-2006 12:20:22 |
Vega, а откуда берется subMenuId? |
Al_H > 09-11-2006 18:30:09 |
Это некорректная конструкция, потому что Вы обращаетесь по Id, не указывая ссылку на объект. Корректно - через document.getElementById('main_menu_1').className='menu_2'
Это абсолютно некорректный код, и не только с точки зрения стандартов. Внутри таблицы вообще могут находиться только строки (ну и tbody, col, colgroup и другие табличные элементы), в строках - только ячейки, и уже в ячейках - другие элементы. |
Vega > 10-11-2006 03:37:21 |
Azathoth
Не понял вопроса. document.all[subMenuId] Я каждому меню присвоил Id Al_H Спасибо за комментарий. Данная конструкция работает во всех броузерах. |
Azathoth > 10-11-2006 04:51:25 |
Vega
Это все потому что вопрос был наводящим, а ответ предназначался не мне, а Вам. Просто нужно было чуток подумать. Vega пишет
И я предполагал что Вы передаете функции showSubMenu номер элемента подменю. Иными словами функция должна была принимать вид: Тогда про num забываем и используем такую форму записи: Ответ на вопрос:
очевиден. Эта переменная, равно как и предполагаемый num, берется из определения функции showSubMenu и является ее аргументом. Вот и всего-лишь навсего... Добавлено Птн 10 Ноя 2006 04:56:54 :
Отвечаю на выделенное. Я сказал то же самое, но другими словами Выделить код Код:<!ELEMENT TABLE - - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)> <!ELEMENT CAPTION - - (%inline;)* -- table caption --> <!ELEMENT THEAD - O (TR)+ -- table header --> <!ELEMENT TFOOT - O (TR)+ -- table footer --> <!ELEMENT TBODY O O (TR)+ -- table body --> <!ELEMENT COLGROUP - O (COL)* -- table column group --> <!ELEMENT COL - O EMPTY -- table column --> <!ELEMENT TR - O (TH|TD)+ -- table row --> <!ELEMENT (TH|TD) - O (%flow;)* -- table header cell, table data cell--> Т.е.: Al_H пишет
Ну еще мы предполагаем что THEAD, TFOOT, TBODY обычно опускаются, но в модели DOM браузер их все же воспроизводит. |
Vega > 10-11-2006 05:44:55 |
Azathoth Большое спасибо |