/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Menu
Fra : Jonas Koch Bentzen


Dato : 06-12-02 14:18

Jeg forsøger at lave en af de kendte, dynamiske rullegardinmenuer. Problemet
er følgende: Når jeg holder musen over "menu1" på
http://understroem.dk/test/menu.html, vises menuen som den skal, men når
jeg derefter flytter markøren ned over menuen, så forsvinder menuen et par
sekunder efter - selvom jeg har markøren inde over menuen, og menuen først
burde forsvinde ommouseout.

Siden har gyldig XHTML og CSS, og Mozilla brokker sig ikke over
JavaScript-fejl.

Er der nogen, der kan se, hvad der er galt?

--
Jonas Koch Bentzen

 
 
Lasse Reichstein Nie~ (06-12-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 06-12-02 16:04

Jonas Koch Bentzen <ingen.email@eksempel.dk> writes:

> Jeg forsøger at lave en af de kendte, dynamiske rullegardinmenuer. Problemet
> er følgende: Når jeg holder musen over "menu1" på
> http://understroem.dk/test/menu.html, vises menuen som den skal, men når
> jeg derefter flytter markøren ned over menuen, så forsvinder menuen et par
> sekunder efter - selvom jeg har markøren inde over menuen, og menuen først
> burde forsvinde ommouseout.
>
> Siden har gyldig XHTML og CSS, og Mozilla brokker sig ikke over
> JavaScript-fejl.
>
> Er der nogen, der kan se, hvad der er galt?

Ikke helt sikker, men Opera gør det samme.
Jeg kan se at problemet forsvinder hvis man tilføjer
onmouseover="menussynlighed('menu1',true)"
til div'en med id="menu1".

Mit gæt er at den bliver forvirret fordi man allerede har været
uden for div'en siden den blev synlig (fordi man starter uden for den).

En anden løsning kunne være at flytte undermenuerne inden i bjælketeksterne:

<a href='#' onmouseout='menusynlighed("menu1", false)'
onmouseover='menusynlighed("menu1", true)'
class='bjaelketekst'>menu1
<div id='menu1' >
<a href='#'>Link 1</a><br />
<a href='#'>Link 2</a><br />
<a href='#'>Link 3</a><br />
</div>
</a>

Det kræver at man sætter lidt padding på bunden af bjaelketeksterne, for at der
ikke kommer et mellemrum mellem bjaelketeksten "menu1" og div'en "menu1".

Haaber det hjælper
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Jonas Koch Bentzen (06-12-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 06-12-02 19:08

Lasse Reichstein Nielsen wrote:
>
> Jeg kan se at problemet forsvinder hvis man tilføjer
> onmouseover="menussynlighed('menu1',true)"
> til div'en med id="menu1".

Tak for forslaget. Det virker desværre ikke i Mozilla.

> En anden løsning kunne være at flytte undermenuerne inden i
> bjælketeksterne:
>
> <a href='#' onmouseout='menusynlighed("menu1", false)'
> onmouseover='menusynlighed("menu1", true)'
> class='bjaelketekst'>menu1
> <div id='menu1' >
> <a href='#'>Link 1</a><br />
> <a href='#'>Link 2</a><br />
> <a href='#'>Link 3</a><br />
> </div>
> </a>

Nestede a-tags? Det lyder som lidt af et hack.

Hvordan gør man normalt? Jeg har prøvet at se nogle af menuerne på
dynamicdrive.com igennem, men det er svært at overskue koden.

--
Jonas Koch Bentzen

Jonas Koch Bentzen (06-12-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 06-12-02 19:20

Jonas Koch Bentzen wrote:

> Lasse Reichstein Nielsen wrote:
>>
>> Jeg kan se at problemet forsvinder hvis man tilføjer
>> onmouseover="menussynlighed('menu1',true)"
>> til div'en med id="menu1".
>
> Tak for forslaget. Det virker desværre ikke i Mozilla.

....fordi jeg kom til at kopiere din kode direkte, og der er et S for meget i
funktionsnavnet :) Retter man det, virker det - men det virker alligevel
ikke helt perfekt. Nogle gange kan det være lidt svært at få menuen til at
lukke sig. Så jeg søger stadig den perfekte løsning.

--
Jonas Koch Bentzen

Lasse Reichstein Nie~ (06-12-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 06-12-02 19:55

Jonas Koch Bentzen <ingen.email@eksempel.dk> writes:

> Nestede a-tags? Det lyder som lidt af et hack.

Argh, ja. Jeg plejer at bruge nestede div'er med ikke-nestede a'er
indeni. Man må ikke neste a-tags.

> Hvordan gør man normalt? Jeg har prøvet at se nogle af menuerne på
> dynamicdrive.com igennem, men det er svært at overskue koden.

Der er mange forskellige tricks, og jeg kender garanteret ikke dem
alle sammen.

Som sagt har jeg bedste erfaring med at lade undermenuerne være
underelementer af hovedpunktet, fx:

<div style="position:relative;">
Menupunkt
<div style="position:absolute;top:1em;visiblity:hidden;">
Undermenu ...
</div>
</div>

På den måde vil en onmouseout-event for Menu-punkt ikke ske mens man
kigger på undermenuen.

Et anden godt trick er vente et par sekunder med at lukke en undermenu
igen når musen forlader den, og lade være med at lukke, hvis musen kommer
tilbage inden. Det giver plads til små unøjagtigheder i musenstyringen.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste