Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
JavaScript
Vysouvací menu pomocí JavaScriptu II.
2. března 2001, 00.00 | V minulém článku jsme si ukázali, jak se tvoří vysouvací menu v JavaScriptu. Dnes se podíváme na to, jak lze takové menu rozhýbat.
|
Jednotlivé součásti menu
Při nahrání stránky je celé menu skryto pod bílou tabulkou, která je nad hlavičkou menu (z toho důvodu musíme nad menu vynechávat větší místo). Zdrojový kód této tabulky je následující:
|
Menu se začne vysouvat po najetí myší nad hlavičkou menu (Builder). Její zdrojový kód jsme si ukázali již minule, dnes pouze zaměníme funkci show() za funkci posun1() u události onmouseover:
|
Zdrojový kód samotného menu se od toho minulého téměř nezměnil, jen je celé menu, jak již bylo řečeno, při načtení stránky posunuto o pár pixelů výše a také není skryto zápisem visibility:hidden (z toho důvodu, že je skryto pod bílou tabulkou). Stejně tak se nezměnil ani podklad menu, který pouze při události onmouseover volá funkci posun3() místo funkce unshow().
Ještě poznámka k překrývání jednotlivých součástí menu: Platí, že ve stránce později definovaný element překrývá dříve definovaný element. Z tohoto důvodu musíme ve zdrojovém kódu definovat jednotlivé vrstvy v tomto pořadí: podklad menu, menu, bílá tabulka překrývající menu při nahrání stránky a hlavička menu.
Funkce pro posun menu
Pokud najedeme myší nad menu, spustí se funkce posun1(). Zdrojový kód této funkce vypadá následovně:
|
Vidíme, že tato funkce nastavuje hodnotu proměnné nahoru na false - význam této proměnné si vysvětlíme později. V druhé řadě potom tato funkce spouští funkci posun2():
|
Ještě před začátkem funkce posun2() musíme do proměnné pos uložit hodnotu 390, protože pozice menu při nahrání stránky je právě 390 pixelů.
A nyní již k samotné funkci posun2(): Ta nejdříve zjistí, jestli pozice menu není 671 pixelů (to je cílová pozice menu) a proměnná nahoru je nastavena na hodnotu false. Pokud jsou obě podmínky splněny, přičte se k hodnotě proměnné pos jednička a pozice menu se nastaví na tuto hodnotu. Poté se opět spustí funkce posun2(). Takto se menu posunuje dokud nedosáhne pozice 671 pixelů nebo se nezmění hodnota proměnné nahoru.
Pohyb menu nahoru zajišťují funkce posun3() a posun4(), které pracují na stejném principu:
|
Vidíme, že se nám pouze změnila cílová pozice menu (na 390 pixelů) a potřebná hodnota proměnné nahoru. Její význam si nyní vysvětlíme: Pokud najedeme myší nad hlavičku menu, spustí se funkce posun1(), která nastaví hodnotu proměnné nahoru na false, takže funkce posun2() může bez problému probíhat. Pokud ale najedeme myší mimo menu, spustí se funkce posun3(), která nastaví hodnotu této proměnné na true, takže funkce posun2() nemůže dále probíhat. Naopak je splněna podmínka pro běh funkce posun4().
Závěrem
Závěrem jen dodávám, že menu v této podobě bylo úspěšně testováno na Internet Exploreru 4 a Netscape Navigatoru téže verze. Budu rád, pokud necháte v diskusi pod článkem vaše zkušenosti s funkčností menu v dalších prohlížečích. A to je pro dnešek všechno.
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007