webForumDet fria alternativet

Hur göra nedfallande meny i lager?

JavaScript

2 svar · 403 visningar · startad av Cuiris

Medlem sedan feb. 2006107 inlägg
Frågan#1

Hej!

Sitter o leker lite med lager då det slog mig hur kraftfullt det vore att använda detta vid t ex menyer. Vet att det finns färdiga DHTML menyer etc, men vill försöka med lager på eget vis.

Jag har använt ett tämligen "manuellt" sätt. Är jäklig ny på detta och är osäker på hur man ska göra. Hur som helst gjorde jag som följer:

Vi går över en text i "huvudmenyn" som heter frukter. Vid mousedown kommer ett lager fram med en undermeny med t ex kategorier som äpple, päron, melon. När vi går ifrån menyalternativet frukter bör man ju inte tillämpa onmouseout för då försvinner ju undermenyn med äpple, päron och melon.

Istället sätter man en onmouseout på lagret.

Men problemet blir ju att om man inte går över lagrena (där funktionen som ska stänga fönstret/undermenyn finns) och bara pendlar musen i huvudmenyn över menyalternativen kommer ju alla lager öppnas och det vill man ju inte. Då blir det ju en enda röra. För att dessa skall stängas så måste man alltså gå över alla lager.

Hur ska jag bete mig?

Hoppas ni förstod vad jag menade... :OO

Medlem sedan juni 20004 308 inlägg
#2

Så här brukar jag göra, men se det inte som det enda sättet :) Onmouseover på huvudmenyn är ju självskriven. Sätt även en onmouseout, men istället för att plocka bort undermenyn direkt vid onmouseout på huvudmenyn så sätter du bara en timeout. När sedan timeouten inträffar (typ 500 ms) så kollar du om det inträffat en onmouseover på undermenyn och i så fall skall den givetvis inte släckas. Samma när det ev. blir en under-undermeny sätt en timeout när man går ifrån undermenyn och släck den bara om man inte använder under-undermenyn. Det är en del meck innan man får till det första gången. Jag har gjort några varianter innan jag blev nöjd. Men det är bra övning :)

Medlem sedan feb. 2006107 inlägg
#3

Hmm det låter väldigt logiskt Jojoxx! Du har ingen kod man kan sätta sig och leka med? Är inte så hemma på detta med delay (timeout) så mycket...

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)