| 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: 9 let
|
|||
0