| Autor | Zpráva | ||
|---|---|---|---|
| Martos Profil * |
#1 · Zasláno: 11. 8. 2011, 08:16:28
Na http://kep.mujhost.cz/Test.htm mám menu. Po kliknutí se zobrazí podmenu, po dalším kliknutí se podmenu skryje. Chci ale udělat 2 věci:
1/ Aby se podmenu zobrazilo po najetí/odjetí myši 2/ Aby se text pod menu neodsunul dolů. Podmenu ten text překryje Mám tento kód:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Test</title>
<style type="text/css">
.klik {cursor: pointer; cursor: hand}
.skryvany { DISPLAY: none}
</style>
</head>
<body>
<SCRIPT>
function zobrazSkryj(idecko){
el=document.getElementById(idecko).style;
el.display=(el.display == 'block')?'none':'block';
}
</SCRIPT>
<table border="0" width="300" cellspacing="0" cellpadding="0">
<tr>
<td><span class="klik" onclick="zobrazSkryj('oddil-01')">Menu 1</span></td>
<td><span class="klik" onclick="zobrazSkryj('oddil-02')">Menu 2</span></td>
<td><span class="klik" onclick="zobrazSkryj('oddil-03')">Menu 3</span></td>
</tr>
</table>
<div style="position: relative; top: 4px; left: 0" class="skryvany" id="oddil-01">
<span><a href="/Podmenu11">Podmenu 11</a></span><br>
<span><a href="/Podmenu12">Podmenu 12</a></span><br>
<span><a href="/Podmenu13">Podmenu 13</a></span><br>
<span><a href="/Podmenu14">Podmenu 14</a></span>
</div>
<div style="position: relative; top: 4px; left: 100" class="skryvany" id="oddil-02">
<span><a href="/Podmenu21">Podmenu 21</a></span><br>
<span><a href="/Podmenu22">Podmenu 22</a></span><br>
<span><a href="/Podmenu23">Podmenu 23</a></span><br>
<span><a href="/Podmenu24">Podmenu 24</a></span>
</div>
<div style="position: relative; top: 4px; left: 200" class="skryvany" id="oddil-03">
<span><a href="/Podmenu31">Podmenu 31</a></span><br>
<span><a href="/Podmenu32">Podmenu 32</a></span><br>
<span><a href="/Podmenu33">Podmenu 33</a></span><br>
<span><a href="/Podmenu34">Podmenu 34</a></span>
</div>
<p>Text, text, text, text, text, text, text, text, </p>
</body>
</html>
|
||
| Sir Tom Profil |
#2 · Zasláno: 11. 8. 2011, 09:42:33
Martos:
Ad 1.: Změníš pouze typ události. Místo onclick="zobrazSkryj('oddil-01')"onmouseout="zobrazSkryj('oddil-01')" onmouseover="zobrazSkryj('oddil-01')"Ad 2.: Aby nově zobrazované podmenu překrývalo text musí mít absolutní pozicování. Místo relative tedy do všech divů s podmenu napiš absolute. (Budeš muset přepsat i hodnoty top a left, ale to uvidíš, až to vyzkoušíš. Jestli necháš kód takto, tak hodnoty top a left se budou počítat od levého horního okraje prohlížeče. Budeš-li chtít s pozicí celého menu dále manipulovat, bylo by dobré, kdybys jej celý uzavřel do divu s position: relative; (resp. absolute - záleží na situaci). V tomto případě se hodnoty top a left u podmenu budou počítat od levého horního okraje divu s celým menu. |
||
| Martos Profil * |
#3 · Zasláno: 11. 8. 2011, 12:19:30
Sir Tom:
Tak jsem to tam zapracoval. Většina je ok, jen když chci myší přejet na to podmenu a opustím myší hlavní název menu, tak se podmenu skryje a není šance na podmenu přejít. Aktuální verzi jsem nahrál na http://kep.mujhost.cz/Test.htm. Kde je chyba? Naformátování vzhledu už bych snad zvládl. Help |
||
| Sir Tom Profil |
#4 · Zasláno: 11. 8. 2011, 12:57:21 · Upravil/a: Sir Tom
Martos:
Chyba je v onmouseout="zobrazSkryj('oddil-01')"Jakmile kurzor opustí element s touto událostí, ona událost se zavolá (a v tomto případě vykoná funkci zobrazSkryj). Bude nutné spravit podmínky v JS. Určitě tam musí být podmínka: Když je kurzor na podmenu, tak jej neskryvej. EDIT: Jináč - již se to zde řešilo: http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=13435 Bez JS je již hotové řešení tady: www.tvorba-webu.cz/css/vysouvaci-menu.php A spousta dalších řešení na Googlu nebo tady na foru po zadání "vysouvací menu" do vyhledavače. (U těchto hotových ale řešení patrně budeš muset znova spravovat pozicování, aby to překrývalo text...) |
||
| Martos Profil * |
#5 · Zasláno: 11. 8. 2011, 12:59:05
Sir Tom:
a jak na to? TO už nedám. |
||
| Sir Tom Profil |
#6 · Zasláno: 12. 8. 2011, 15:08:54
Martos:
„a jak na to? TO už nedám.“ Viz můj předchozí příspěvek. Nejrychlejší bude použít již hotové řešení... |
||
|
Časová prodleva: 15 let
|
|||
0