Autor | Zpráva | ||
---|---|---|---|
Haňulík Profil |
#1 · Zasláno: 30. 6. 2016, 16:09:42
Dobrý den,
potřebuji udělat vertical dropdown menu. Mám následující kod: <div class="menu_vlevo"> <h2></h2> <ul> <li><a href="#">Menu 1</a></li> <li><a href="#">Menu 2</a> <ul> <li><a href="#">Sub menu 1</a></li> <li><a href="#">Sub menu 2</a></li> </ul> </li> <li><a href="#">Menu 3</a></li> <li><a href="#">Menu 4</a></li> </ul> <script> $(document).ready(function(){ $('li').click(function(){ $(this).children('ul').toggle(); }); }); </script> <style> .menu_vlevo { float:left; padding:0px 0px 20px 0px; min-height:250px; width:25%; position:relative; } .menu_vlevo ul { list-style: none; margin: 0; padding: 0; } .menu_vlevo li { color: #00cccc; padding: 4px 0px 8px 0px; text-decoration: none; list-style:none; } .menu_vlevo li a { display: inline-block; color: #00cccc; padding: 4px 0px 8px 27px; text-decoration: none; list-style:none; } .menu_vlevo li a:hover { display: inline-block; color: #ff6600; padding: 4px 0px 8px 27px; text-decoration: none; list-style:none; background:url('../img/linka_side.gif'); } .menu_vlevo li ul { display:none; padding-left:20px; } .menu_vlevo li li a { line-height:120%; } </style> Při kliku na položku, která rozbaluje, bych potřeboval, aby tam to rozbalené menu zůstalo. Funguje to, pokud mám adresu a rel="nofollow" href="" prázdnou, ale pokud začnu směrovat na stránku, kam má,tak se to přesměruje, což je logické, já vím. Máte někdo radu? Změnit strukturu menu, nebo jde nějak pozměnit ten script? Děkuji |
||
Tomáš123 Profil |
#2 · Zasláno: 30. 6. 2016, 17:05:24
Haňulík:
Je celkom zaužívané, že sa menu rozbalí pri nájdení myšky (bez symbolu užívateľ často podmenu prehliadne a neklikne na nadradenú položku). To ide zariadiť s dobrou podporou v čistom CSS. Problém ale nastáva pri mobilných zariadeniach, kde :hover síce ide vyvolať, ale nanešťastie pri odkazoch bez aktivovania linku dosť obtiažne. Fisir tu kedysi spomínal náhradu pomocou pseudotried :focus a :active . Tie ale takisto nezabránia prepojeniu po kliknutí.
JavaScriptom by zrejme šlo zariadiť, aby sa napríklad po prvom kliknutí otvorilo menu a po druhom prepojilo na cieľovú adresu odkazu (pričom väčšina ľudí by druhýkrát neklikla alebo klikla preto aby vysunutú ponuku zavrela). Ďalšou možnosťou by bolo JavaScriptom odstrániť hodnotu atribútu href a v podmenu vygenerovať ako obsah prvej položky kópiu s funkčným odkazom. Obdobného cieľa by si mohol dosiahnuť napríklad zmením štruktúry položiek vedúcich podmenu:
<li><a href="#">Text odkazu</a><span>Text odkazu</span> <span> respektíve pozicioval <a> podľa zariadenia. Tento postup je ale okrem nevýhody zložitosti náchylný aj na potenciálne vytekanie obsahu, či inak závadný vzhľad. Funguje ale bez JS.
|
||
Časová prodleva: 15 dní
|
|||
radekt Profil |
#3 · Zasláno: 15. 7. 2016, 14:18:39
Řešil jsem něco podobného, když jsem potřeboval pro mobilní rozlišení, aby zvolená nadřízená položka zůstala rozbalená a dalo se tapnout na její podřízené položky. Pomohlo mi tohle: Pure CSS Mobile-compatible Responsive Dropdown Menu.
|
||
Časová prodleva: 8 let
|
0