Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Javascript submenu

Skapad av Lollaren, 2011-06-14 14:02 i Webbutveckling & Programmering

2 075
14 inlägg
0 poäng
Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
0
Hejsan, letar efter nån sida där man kan ladda ner en gratis submenu ungefär som hamsterpajs meny är jag ute efter.
Vill lära mig hur dessa är gjorda?
Har googlat runt ett bra tag men inte hittat nån som funkat.
Vad ska man googla på? Liksom en dropdown meny har ju oxå submenus men asså, aah, jag fattar inte :D
Jag vill ha en sånn design som hamsterpajs meny.

Kodapa

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Lär inte vara allt för svårt att snickra ihop.

Ge varje huvudmeny en egen ID och när man håller över ett menyval körs en funktion i javascript som hämtar undermenyn med samma ID. Undermenyerna har du sparat i en array sedan är det bara att ta bort den förre undermenyn och gå igenom alla element med en loop och skriva ut dessa.

Ett annat alternativ är att ha alla undermenyer utskriva i HTML-koden redan och ha display none på alla som inte ska visas. När man håller över ett annat menyval sätts display none på den förra och man visar den nya undermenyn genom att sätta lämpligt display värde på den.

Jag är ond!

Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Svårt eller?

Kodapa

Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
skulle du kunna göra en simpel javascripts kod som jag kan leka med?

Kodapa

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Nu har jag fått några mackor i magen och gjort en undermeny som borde fungera, sen får du nog ändra lite på den och i din stilmall (:

http://pastebin.com/tJdXdR2V

Tillägg av Tvillingen 2011-06-15 00:20

Värt att tillägga är att jag har använt mig av jQuery som är ett ramverk till javascript. Mycket användbart.

http://jquery.com

Jag är ond!

Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Tack så mycket nu ska här fixas, får se om jag lyckas fixa nån snygg meny :D

Kodapa

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0

Svar till Lollaren [Gå till post]:
Det ska nog gå bra det (:

Här har du en annan lösning där alla undermenyner redan är utskrivna i HTML-koden fast de visas inte.

http://pastebin.com/mxaAzLkj

Jag är ond!

Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Hur gör jag för att lägg till en till flik/undermeny då? på den första? la till en ny array och menuItem

Kodapa

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0

Svar till Lollaren [Gå till post]:
Lägga till en ny array och en till <li>

Ett stycke html-kod:
var submenu = new Array(
new Array('Startsida','Om oss','Torsdag'),
new Array('Bilder','Spel','Nyheter','Smått & Gott'),
new Array('Foo','Bar')
);

<ul>
<li id="menuItem_0">Start</li>
<li id="menuItem_1">Annat</li>
<li id="menuItem_2">Foobar</li>
</ul>


Jag är ond!

Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Hehe, tack :)

Kodapa

Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
Trådskapare
0
Nån som vet hur jag löser detta?
När jag håller på en länk som visar en submenu så hoppar submenun ner.
Men om jag håller på en länk som inte öppnar en submenu så är den normal?
Hur ska jag göra för att få den såhär hela tiden:
Forum image

Och inte såhär:
Forum image

Här är CSS koden
[code]
:.content { margin:0px auto; width: auto; border:1px black solid; text-align:center; } .header { border:3px green solid; height:150px; width: auto; } .footer { text-align:center; } body { background:lightblue; } #menuHolder { background:url(img/nav-bg.gif) repeat-x; height:32px; margin:0 auto; width:auto; } #menuHolder ul{ height:32px; line-height:32px; } #menuHolder ul li{ display:inline; padding:0 20px; } #menuHolder ul li a, #menuHolder ul li a:visited { background:url(img/line-a.gif) right no-repeat; padding:0 20px; display:block; text-decoration:none; float:left; color:#4261df; font-weight:bold; text-shadow: #ffffff 2px 2px 2px; margin:0px auto; } #menuHolder ul li a:hover{ color:#1532a5; } /* ----------- SUBLINKS ----------- */ #submenuHolder{ width:auto; margin:0 auto; background:#888888 url(img/sublink.gif); height:30px; font-size:11px; } #submenuHolder ul{ height:32px; line-height:31px; } #submenuHolder ul li{ display:inline; padding:0 20px; } #submenuHolder ul li a, #submenuHolder ul li a:visited { padding:0 20px; display:block; text-decoration:none; float:left; color:#FFFFFF; text-align:center; } #submenuHolder ul li a:hover{ text-decoration:underline; } /* ----------- SUBMENU ----------- */ #menuItem_0, #menuItem_1, #menuItem_3, #menuItem_4, #menuItem_5,{display:none;} div#sBar { list-style-type: none; text-align: center; margin: 0px; padding: 0px; height: 29px; margin-bottom: 10px; width: 728px; background-color: #fff; border: 1px solid #dfdfdf; position: static; left : 0; } div#sBar li { list-style-type: none; margin: 0px; padding: 0; float: left; width: auto; background: none; } #sBar div.sBarInside { list-style-type: none; margin: 0px; padding: 0; float: left; } #sBar div.sBarInside img { float: left; border: 0px;} #sBar div.sBarInside strong span.checkItOut { color:#0000ff; font-size: 15px; font-family: arial, helvetica; text-decoration: underline; font-weight: bold; } #sBar div.sBarInside strong { float: left; margin: 6px 0px 0px 5px; font-size: 15px; font-family: arial, helvetica; cursor: hand; } #sBar div.trial { padding: 0px; margin: 0px; float: none;} #sBar div.trial img { float: right;}
[/code]

HTML Koden:
[code]
<html>
<head>
<link href="style2.css" rel="stylesheet" type="text/css" media="screen" />
[removed][removed]
[removed]
$(document).ready(function ()
{
//Tittar ifall muspekaren hålls över menuItem_siffra
$('*[id^=menuItem_]').hover(function()
{
//Hämtar siffran efter menuItem_
var itemIDMatch = $(this).attr('id').match(/menuItem_([0-9]*)/);

//kontrollerar ifall det blev någon träff
if(itemIDMatch[1])
{
//itemID har nu värdet från menuItem_
var itemID = itemIDMatch[1];

//Gömmer den förra undermenyn
$('.active').removeClass('active').addClass('inactive');
//Visar den nya undermenyn
$('#submenuItem_' + itemID).removeClass('inactive').addClass('active');
}
});

});
[removed]
<style type="text/css">
.active
{
display: block;
}
.inactive
{
display: none;
}
</style>
</head>
<body>
<div id="menuHolder">
<ul>
<li id="menuItem_0"><a href="#">Start</a></li>
<li id="menuItem_1"><a href="#">Kontakta oss</a></li>
<li id="menuItem_2"><a href="#">Forum</a></li>
<li id="menuItem_3"><a href="#">Partners</a></li>
<li id="menuItem_4"><a href="#">Sallad</a></li>
<li id="menuItem_5"><a href="#">Smått och gott</a></li>
</ul>
</div>
<div id="submenuHolder">
<ul id="submenuItem_0" class="active">
<li><a href="#">Om oss</a></li>


</ul>
<ul id="submenuItem_1" class="inactive">
<li><a href="#">Bilder</a></li>
<li><a href="#">Spel</a></li>
<li><a href="#">Nyheter</a></li>
<li><a href="#">Smått & Gott</a></li>
</ul>
</div>
</body>
</html>
[/code]

Kodapa

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0

Svar till Lollaren [Gå till post]:
Det beror på det här.

Ett stycke css-kod:
.active
{
display: block;
}


Byt ut block mot inline istället (:

Jag är ond!

Lollaren
Visningsbild
P 27 Gävle Hjälte 1 441 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
funkar ej :)

Kodapa


Forum » Datorer & IT » Webbutveckling & Programmering » Javascript submenu

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons