Что то никак не пойму я логику
есть два пункта меню, первый:
<a href="" onMouseOver="focus_menu('news');" onMouseOut="mokus_menu('news');">НОВОСТИ</a> второй: <div class="sub_menu"> <div id="news" class="sub" onMouseOver="focus('news');" onMouseOut="mokus('news');"> <a href="">Основные новости</a><br> <a href="">Новости погоды</a><br> </div> написал код js: var bool=false; function focus_menu (id) { document.getElementById(id).style.display='block'; } function mokus_menu (id) { function vis() { if(bool==false)document.getElementById(id).style.display='none'; alert("aaaaa"); } setTimeout(vis,1000); } function focus (id) { bool=true; alert("bbbb"); } function mokus (id) { bool=false; document.getElementById(id).style.display='none'; } |
не пойму что он мне делает, по логике вроде правильно, поставил алерты так alert("bbbb"); вообще не выводится, мало того, если с первого пункта меню навести на второй то никакой задержки не видно, хотя и устанавлен
setTimeout(vis,1000); задержка работает только если с первого пункта перевести курсор на остальное содержимое страницы |
в чем ошибся?:(
|
может дело в том что две функции выполняются одновременно?
|
Цитата:
|
так все же вставил, мне css еще вставить что ли, код же понятен, наводя на первый элемент, делаю видимым второй через свойство стиля document.getElementById(id).style.display='block'; и т.д.
|
отделил меню, html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Ps</title> <style type="text/css"> @import url(css3.css); </style> <script type="text/javascript" src="js/library.js"></script> </head> <body> <div id="vse"> <div class="menu"> <div style="padding: 0px 12px 0px 12px;"> <a href="" onMouseOver="focus_menu('news');" onMouseOut="mokus_menu('news');">НОВОСТИ</a> <a href="" onmouseover="focus_menu('sport')" onmouseout="mokus_menu('sport')">СПОРТ</a> <a href="" onmouseover="focus_menu('kult')" onmouseout="mokus_menu('kult')">КУЛЬТУРА</a> <a href="" onmouseover="focus_menu('nauka')" onmouseout="mokus_menu('nauka')">НАУКА</a> <a href="" onmouseover="focus_menu('nagr')" onmouseout="mokus_menu('nagr')">НАГРАДЫ</a> <div class="clear" onfocus=""></div> </div> </div> <div class="clear"></div> <div class="sub_menu"> <div id="news" class="sub" onMouseOver="focus('news');" onMouseOut="mokus('news');"> <a href="">Основные новости</a><br> <a href="">Новости погоды</a><br> </div> <div id="sport" class="sub"> 2 </div> <div id="kult" class="sub"> 3 </div> <div id="nauka" class="sub"> 4 </div> <div id="nagr" class="sub"> 5 </div> </div> </div> </body> </html> |
css:
body{ padding:0; margin:0; background: #efefef; text-align:center;} #vse{ margin:0 auto 0 auto; width:1000px; background: #fff; position: relative;} .menu { background: url('images/menu.jpg') #86a262 repeat-x; width: 100%; float: left; } .menu a { background: url('images/menu.jpg') #86a262 repeat-x; display: block; float: left; width: 165px; color: #ffffff; font-size: 20px; text-decoration: none; padding: 8px 0px 9px 0px; text-align: center; } .menu a:hover { background:#648040; } .sub_menu { background: #123; position: absolute; left: 0px; } .sub_menu .sub { width: 200px; background: #ffffff; border: 1px solid #000; position: absolute; } .sub_menu #news { display: none; float: left; left: 12px; } .sub_menu #sport { display: none; float: left; left: 177px; } .sub_menu #kult { display: none; float: left; left: 342px; } .sub_menu #nauka { display: none; float: left; left: 507px; } .sub_menu #nagr { display: none; float: left; left: 672px; } div.clear { clear: both; } |
javascript:
var bool=false; function focus_menu (id) { document.getElementById(id).style.display='block'; } function mokus_menu (id) { function vis() { if(bool==false)document.getElementById(id).style.display='none'; alert("aaaaa"); } setTimeout(vis,1000); } function focus (id) { bool=true; alert("bbbb"); } function mokus (id) { bool=false; document.getElementById(id).style.display='none'; } |
ну я думаю итак понятно было.....
|
Цитата:
|
Итого имеем вот такую страничку...
<!DOCTYPE html> <html> <head> <title>test</title> <style type="text/css"> body{ padding:0; margin:0; background: #efefef; text-align:center;} #vse{ margin:0 auto 0 auto; width:1000px; background: #fff; position: relative;} .menu { background: url('images/menu.jpg') #86a262 repeat-x; width: 100%; float: left; } .menu a { background: url('images/menu.jpg') #86a262 repeat-x; display: block; float: left; width: 165px; color: #ffffff; font-size: 20px; text-decoration: none; padding: 8px 0px 9px 0px; text-align: center; } .menu a:hover { background:#648040; } .sub_menu { background: #123; position: absolute; left: 0px; } .sub_menu .sub { width: 200px; background: #ffffff; border: 1px solid #000; position: absolute; } .sub_menu #news { display: none; float: left; left: 12px; } .sub_menu #sport { display: none; float: left; left: 177px; } .sub_menu #kult { display: none; float: left; left: 342px; } .sub_menu #nauka { display: none; float: left; left: 507px; } .sub_menu #nagr { display: none; float: left; left: 672px; } div.clear { clear: both; } </style> <script type="text/javascript"> var bool=false; function focus_menu (id) { document.getElementById(id).style.display='block'; } function mokus_menu (id) { function vis() { if(bool==false)document.getElementById(id).style.display='none'; alert("aaaaa"); } setTimeout(vis,1000); } function focus (id) { bool=true; alert("bbbb"); } function mokus (id) { bool=false; document.getElementById(id).style.display='none'; } </script> </head> <body> <div id="vse"> <div class="menu"> <div style="padding: 0px 12px 0px 12px;"> <a href="" onMouseOver="focus_menu('news');" onMouseOut="mokus_menu('news');">НОВОСТИ</a> <a href="" onmouseover="focus_menu('sport')" onmouseout="mokus_menu('sport')">СПОРТ</a> <a href="" onmouseover="focus_menu('kult')" onmouseout="mokus_menu('kult')">КУЛЬТУРА</a> <a href="" onmouseover="focus_menu('nauka')" onmouseout="mokus_menu('nauka')">НАУКА</a> <a href="" onmouseover="focus_menu('nagr')" onmouseout="mokus_menu('nagr')">НАГРАДЫ</a> <div class="clear" onfocus=""></div> </div> </div> <div class="clear"></div> <div class="sub_menu"> <div id="news" class="sub" onMouseOver="focus('news');" onMouseOut="mokus('news');"> <a href="">Основные новости</a><br> <a href="">Новости погоды</a><br> </div> <div id="sport" class="sub"> 2 </div> <div id="kult" class="sub"> 3 </div> <div id="nauka" class="sub"> 4 </div> <div id="nagr" class="sub"> 5 </div> </div> </div> </body> </html> |
Что теперь с этим делать? Чего смотреть? Чего не так?
Поскольку организация меню вовсе колхозная и всё желательно делать совсем не так... :) Есть списки... Вложеные списки... Вот ими и делаются такого рода менюшки. |
Вот эта связка вообще убийственная
var bool=false; ... if(bool==false) |
Вот примерчик с меню/подменю...
<!DOCTYPE html> <html> <head> <title>test</title> <style type="text/css"> * { margin: 0; padding: 0; } ul { list-style: none; } a { text-decoration: none; } a:hover { text-decoration: underline; } #menu > li { position: relative; float: left; margin-right: 10px; } #menu > li:hover .sub_menu { display: block; }} .sub_menu { position: absolute; top: 100%; left: 0; display: none; } </style> <script type="text/javascript"> </script> </head> <body> <ul id='menu'> <li><a href="#">НОВОСТИ</a> <ul class='sub_menu'> <li><a href="#">Основные новости</a></li> <li><a href="#">Новости погоды</a></li> </ul> </li> <li><a href="#">СПОРТ</a></li> <li><a href="#">КУЛЬТУРА</a></li> <li><a href="#">НАУКА</a></li> <li><a href="#">НАГРАДЫ</a></li> <ul> </body> </html> |
Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 07:46. |