Posunující se text ve stavovém řádku
Jak jsem vám minule slíbil, ukážeme si další techniky, které můžeme použít při vytváření textových efektů ve stavovém řádku prohlížeče. V tomto článku se zaměříme na posunující se text.
Posunující se (scrolling) texty ve stavovém řádku už, jak se zdá, trochu vyšly z módy. Nám však poslouží aspoň pro procvičení JavaScriptu, a pokud pro ně někdy v budoucnu naleznete praktické upotřebení, tím lépe. Ukázku posunujícího se textu vidíte dole ve stavovém řádku. Stejně jako v minulém článku, veškeré použité techniky jsou standardní a fungují bez problémů v Internet Exploreru a v Netscape.
Kód, zabezpečující posouvání textu, je následující:
|
Opět jsme použili nám již známou funkci časovače window.setTimeout(), pomocí které opakovaně voláme naši funkci ScrollLeft(). Ta nejprve posune text v rámci proměnné msg (pomocí textové funkce substring „uřeže“ prvních amount znaků řetězce msg a přidá je na konec), a poté upravený text vloží do stavového řádku prohlížeče funkcí window.status().
Všimněte si rovněž definice řetězce msg. Při této technice je nutné před i za vlastní zprávu, kterou chceme sdělit světu, vložit několik mezer – jejich počet stanovíme nejlépe zkusmo.
Poznámka: V uvedeném příkladě by stačilo vložit mezery pouze na jednu stranu řetězce. Pro další příklady uvedené v tomto článku je však vhodnější použít mezery na obou stranách.
Posun textu na opačnou stranu
Chceme-li posunovat text ve stavovém řádku na opačnou stranu, tedy doprava, stačí nám k tomu mírná modifikace funkce ScrollLeft(). Upravenou funkci nazveme netradičně ScrollRight():
|
Úprava spočívá v modifikaci druhého řádku funkce, s využitím JavaScriptové funkce length (přesněji: vlastnosti length proměnné msg), která udává délku řetězce ve znacích. Posouváme nadále doleva, tentokrát však nikoliv o amount znaků, ale o délka_řetězce mínus amount znaků, tedy vlastně o amount znaků doprava.
Do třetice: posun textu tam a zpátky
Text můžeme rovněž nechat ve stavovém řádku „kvedlat“ tam a zpět. Opět tak učiníme, tentokrát trochu rozsáhlejší, modifikací fukce ScrollLeft(). Upravenou funkci nazveme ScrollAlternate(). Kromě modifikace funkce budeme rovněž potřebovat zavést pomocnou proměnnou, ve které budeme přechovávat aktuální směr pohybu. Tuto proměnnou nazveme dir. Zde je upravený kód:
|
Modifikace jsme provedli dvě. Nejprve (druhý až pátý řádek v těle funkce) podle stavu proměnné dir provedeme posun textu doleva nebo doprava, poté (sedmý až desátý řádek) zkontrolujeme, zda už se scrollující text neocitl na některém okraji; v tom případě změníme směr pohybu.
Poznámka mimo téma (pouze pro JavaScript začátečníky)
Povšimněte si nezvyklé konstrukce s otazníkem na osmém řádku v těle funkce. Jedná se o ternální („trojný“, tedy nikoliv termální) operátor otazník, který umožňuje stručně a efektivně vyhodnocovat rozhodovací výrazy – jedná se tedy o jakýsi (velmi nepřesně řečeno) ekvivalent konstrukce if..else. Řádek dir = dir ? 0 : 1 tedy v našem příkladě nahrazuje konstrukci:
|
Vzhledem k tomu, že na rozdíl od kompilovaného kódu (Java, C) je kód JavaScriptu přenášen „tak jak je napsán“, záleží u delších skriptů kvůli rychlosti stahování stránek leckdy na každém řádku – nehledě na zlepšení přehlednosti takového kódu. Vřele Vám proto doporučuji operátor otazník prostudovat a hojně jej používat.
Tolik malé odbočení a to je také vše ke dnešnímu tématu.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Globální výpadek IT systémů: Může za to jediná aktualizace
19. července 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
Umělá inteligence v IT
27. září 2023 -
Vaše pošta může být špatně nastavena – svěřte ji profesionálům
13. července 2023
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024