Přichází xbo! Javascriptové náhledy obrázků..
Právě teď vypouštím první verzi Javascriptového nástroje, který ulehčuje uživateli používání stránky s odkazy na obrázky – zobrazuje je v pomocném
boxu. Pracovní název celého skriptu byl xomojátka, protože původní idea byla zobrazovat obrázek v plovoucím okně pod odkazem, při najetí
kurzoru myši, což vzdáleně připomíná Derova
Cotojátka. Potom jsem promýšlel funkčnost čím dál více do hloubky a vznikl mi z toho takový Lightbox, který je otevřenější pro možné zásahy uživatele. A
finální název xbo vychází ze „xom`s box“, radši bych použil xbox, ale to by něco připomínalo.. ;o)
Pojďme se podívat na možnosti, které nám celý skript nabízí. xbo se nastavuje přidáváním hodnot do asociovaného pole
settings, tudíž není těžké si nastavit chování přesně dle potřeb, když znáte možné parametry.
Parametry
V následujících řádcích budu používat pro element, ve kterém se zobrazuje obrázek, názvu box.
-
settings["class"] = "imageView";Definice atributuclass, použitého k vlastnímu nastylování boxu. Bez použití se nastaví automatický styl. -
settings["windowID"] = "imageBox";Definice atributuidpodle kterého bude nalezen box v kódu – tzn. že se nebude vytvářet nový element. Doporučený element jeDIV. -
settings["action"] = "click";Definice akce, po které se spustí/ukáže box. Přednastavený jeonmousemove, Další povolená hodnota je pouze „click“ (zatím). -
settings["autoPosition"] = true;Booleanovská hodnota určuje zda-li se box pozivuje automaticky – automaticky znamená ihned pod odkazem. -
settings["elementName"] = 'obrazek';Restrikce funkčnosti skriptu pouze na elementy stejné třídy, na jiné nebudou funkce xbo aplikovány. -
settings["relativePosition"] = true;Zapnutí relativního pozicování boxu, to znamená, že se objevuje na viditelné pozici stránky (když máte odscrollováno dolů, tak se objeví u horního okraje aktuální pozice stránky.) -
settings["relativePositionX"] = 30;Definice kolik px od levého okraje stránky se box zobrazí v módu relativního pozicování. -
settings["relativePositionY"] = 30;Definice kolik px od vrchního okraje stránky se box zobrazí v módu relativního pozicování. -
settings["image"] = true;Zapnutí zobrazování pouze pro obrázky – momentálně musí být vždy nastavováno na true – figuruje kvůli dalšímu vývoji – práce s textem na odkazovaných stránkách. -
settings["hide"] = true;Zapnutí automatického schovávání boxu. -
settings["template"] = '<h4>%title%</h4><img src="%href%" alt="%title%"/>';Definice šablony textu, který se zobrazuje v boxu. Zde figuruje několik proměnných, které se nahrazují údaji z aktivujícího elementuA. Proměnné jsou%title%a%href%(lze odkazovat i přes%src%při chybné záměně atributů kodérem.)
Šablona ve stávající verzi IMG, do kterého se bude vkládat obrázek. Při
použití více obrázků v šabloně bude použit první element. Pokud šablona neobsahuje element IMG, použije se přednastavená.
Ukázky
Pro představu funkčnosti jsem připravil pár ukázek:
- Dynamický náhled obrázku pod odkazem.
- Náhled obrázku v relativně pozivovaném textu po kliknutí – podobné nastavení je použito na mé obchodní prezentaci.
- Dynamický náhled obrázků v pevném boxu – ideální pro fotogalerii.
Vložení do stránky, aktivace
Vložení skriptu do stránky učiňte touto definicí v HEAD elementu stránky: <script type="text/javascript"
src="xbo.js"></script> – pokud je nastavení definováno v souboru skriptu, tak nemusíte pro funkčnost nic více přidávat, samo se
vše inicializuje po načtení stránky.
Tak toto je vše z prvního představní nástroje xbo, můžete si ho stáhnout (1.3kB), testovat, používat, samozřejmě, že budu rád za jakékoliv ohlasy – osobně jsem zatím testoval chování v Explorer, Firefoxu a Opeře, předpokládám, že budu ještě drobně ladit pro Konqueror (bohužel poslední dobou nejsem u Linuxu.)
Výhledově bych chtěl dotáhnout nějaké načítací efekty a poladění ve starších verzích prohlížečů, tak mi přejte ať mám trochu čas.. ;o)
z kategorie Web design, přidej na Linkuj.cz, publikováno 15.10.2006 23:08
Nápověda sytaxe komentářů
Reakci na předchozí komentář můžete učinit napsáním např. [2] či stisknutím odkazu reakce u dotyčného komentáře.
Základní formátování textu - zvýrazněné písmo je v Texy! definováno následovně *pro kurzívu* a **pro tučný řez**.
Odkazy se převádějí automaticky, ale dá se upravit slovní spojení, které bude na dotyčnou adresu ukazovat - např. "xomův fotoblog":[http://www.xom-tom.com/].
Další možnosti syntaxe
Komentáře formátuje Texy! Podrobná dokumentace syntaxe je ka nalezení na oficiálních stránkách.

RSS blogu
Seznam.cz RSS čtečka
Google.com RSS čtečka
Komentáře k článku (23×)
Ty jo… :o)) Cool!
Trochu selhává automatické pozicování, když je odkaz v tabulce a ta je v divu s position: relative. Ten div možná není podmínkou ;).
Absolutně nefunguje tak jak má. Mám odkaz umístěný v tabulce v divu a náhled se mi vždy zobrazí v levém horním rohu (souřadnice top: 0px, left: 0px)
|3| - reakce na LordSpider: Otázkou je, co znamená, že to má fungovat tak jak má? Jestli tak, jak si představuju já autor nebo dle tvých představ o fungování, tyto dvě množiny se nemusejí překrývat a popis tvého problému je značně obecný, nic neříkající.
Dekuji
wowwwwwww….fakt pecka!!! diky
Ják máte ten druhý příklad.Potřeboval bych aby se to zobrazovalo uprostřed stránky. A to pořád i po zmenšení okna prohlížeče a tak. Tím relativepositionx a y se to dá na pevno. jde to nějak? Děkuji
|7| - reakce na Jakub Matějček: Již to jde ;) Dopsal jsem funkci pro procentuální pozici – ukázka, JS zdroj.
Nastavení se provede definicí:
settings["percentPosition"] = true;
settings["relativePosition"] = 0.5;
settings["relativePosition"] = 0.5;
settings["widthPosition"] = 250;
Hodnota 0.5 říká o kolik procent stránky se box ukáže od levého okraje – tedy o 50%, settings[„widthPosition“] slouží ke korekci, aby se box ukazoval přesně na středu (říká, jak bude nakonec široký) – widthPosition jsem tam dal nekoncepčně, ale skript ve fázi pozicování ještě přesně neví, jak bude výsledek široký. Pokud si nastylujete, že bude mít box width:500px a nastavíte widthPosition také na 500, relativePositionX na 0.5, tak budete mít výsledek přesně ve středu stránky.
|8| - reakce na xom: super děkuji.vubec jsem nečekal že někdo odepíše:)
no uplně přesněmi to nefunguje ale to se nějak vyladí:)bohužel ale mám ještě jeden problém.když změním šířku boxu tak v IE je pořád stejná..
|10| - reakce na Jakub Matějček: Změnu šířky v CSS nebo tu teoretickou pro xbo? Výše přiložený příklad mi funguje stejně ve všech hlavních prohlížečích včetně ie6 a ie7 nebo i KHTML Swiftu.
|11| - reakce na xom: no měním to v css a to se mi v IE neprojeví.asi to jde změnit i jinde že?jen jsem zatím nenašel kde.někde v kódu xbo?
a text také nemám v IE vycentrovaný.prostě vubec nepůsobí css na to:)
|13| - reakce na Jakub Matějček: To vypadá na individuální problém v konkrétním CSS..
|14| - reakce na xom: ani když použiji přesně to co máte za příklad vy tak mi to v IE nefunguje správně.bohužel
Ahoj XOM.. bude nejaka ta nova verze? :) dik :)
|16| - reakce na honzalunek: Momentálně mám spoustu práce, takže času nezbývá, ale sepisuji si nápady..
Zdravim, jde to použít i když potřebuji, se aby se cíl zobrazil po najetí na obrázek a ne jen na text, jak máte tady v příkladech?
Díky
|18| - reakce na Biker: To je vlastně totéž, akorát je do tagů A uzavřen IMG namísto textu..
Neda sa nastavit aby ten obrazok co sa mi objavi mal najviac vysku 100px lebo nechcem aby sa mi velke obrazky zobrazovali na celej stranke. da sa to nejak urobit?
|20| - reakce na toretto: Toto se dá nastavit v CSS, kde se nadefinuje height: 100px; a přetekání rozměru se schová overflow: hidden;
Jednoduse nastavitelna a chytra vecicka. Ulehcilo mi to znacne kontroly velkeho mnozstvi obrazku v administraci. Diky moc! :)
Ahoj!! Toto je suprovní! Ovšem mám malý problémek v IE :( v lišce šlape suprovně. A můj problém je ten že když mám stránku dlouhou (výpis z DB nekolik set záznamů) a chci si zobrazit obrázek posledního záznamu, tak se mi obrázek ukáže úplně nahoře podle nastavení. Newím jak docílit toho, aby se obrázek ukázal někde viditelně a já nemusel vždycky vyjíždět az na vršíček stránky. Při použití opravy co tady byla vložena (pozicování procentuálně) se mi to zase ukáže třeba někde hluboko uprostřed. Prosím pomožte bo tuto věcičku velmi nutně potřebuji! Předem dík za jakékoliv rady!