xom`s pinion - Tom Hnatovsky Blog

Přichází xbo! Javascriptové náhledy obrázků..

15. října 2006 Web design 24 komentářů

xbo logo 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 atributu class, použitého k vlastnímu nastylování boxu. Bez použití se nastaví automatický styl.
  • settings["windowID"] = "imageBox"; Definice atributu id podle kterého bude nalezen box v kódu – tzn. že se nebude vytvářet nový element. Doporučený element je DIV.
  • settings["action"] = "click"; Definice akce, po které se spustí/ukáže box. Přednastavený je onmousemove, 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 elementu A. 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 musí obsahovat minimálně jeden element 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:

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)

Vaše komentáře

GRavatar

Katty 16.10.06 08:20

Ty jo… :o)) Cool!

GRavatar

Gringo 23.2.07 17:38

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 ;).

GRavatar

LordSpider 8.5.07 16:59

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)

GRavatar

xom 8.5.07 17:43

|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í.

GRavatar

Petr 13.6.07 01:00

Dekuji

GRavatar

roxy 24.6.07 00:04

wowwwwwww….fakt pecka!!! diky

GRavatar

Jakub Matějček 31.7.07 13:44

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

GRavatar

xom 31.7.07 15:55

|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["per­centPosition"] = true;
settings["re­lativePosition"] = 0.5;
settings["re­lativePosition"] = 0.5;
settings["wid­thPosition"] = 250;

Hodnota 0.5 říká o kolik procent stránky se box ukáže od levého okraje – tedy o 50%, settings[„wid­thPosition“] 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.

GRavatar

Jakub Matějček 31.7.07 22:36

|8| - reakce na xom: super děkuji.vubec jsem nečekal že někdo odepíše:)

GRavatar

Jakub Matějček 31.7.07 22:55

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á..

GRavatar

xom 1.8.07 02:13

|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.

GRavatar

Jakub Matějček 1.8.07 10:15

|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?

GRavatar

Jakub Matějček 1.8.07 16:19

a text také nemám v IE vycentrovaný.prostě vubec nepůsobí css na to:)

GRavatar

xom 2.8.07 11:35

|13| - reakce na Jakub Matějček: To vypadá na individuální problém v konkrétním CSS..

GRavatar

Jakub Matějček 2.8.07 22:52

|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

GRavatar

honzalunek 31.8.07 10:41

Ahoj XOM.. bude nejaka ta nova verze? :) dik :)

GRavatar

xom 3.9.07 05:09

|16| - reakce na honzalunek: Momentálně mám spoustu práce, takže času nezbývá, ale sepisuji si nápady..

GRavatar

Biker 6.1.08 23:35

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

GRavatar

xom 7.1.08 00:34

|18| - reakce na Biker: To je vlastně totéž, akorát je do tagů A uzavřen IMG namísto textu..

GRavatar

toretto 6.2.08 20:39

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?

GRavatar

xom 7.2.08 02:05

|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;

GRavatar

Buena 31.7.08 15:53

Jednoduse nastavitelna a chytra vecicka. Ulehcilo mi to znacne kontroly velkeho mnozstvi obrazku v administraci. Diky moc! :)

GRavatar

zdenál 19.11.08 16:44

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!

GRavatar

Kiyoshi 20.8.09 18:39

Zdravím mám problém s boxem. nefunguje to korektně ani tady v příkladech jak koukám. Při kliknutí na náhled obrázku se box nezobrazí okolo full obrázku. po druhém pokliku je vše v pořádku a box se rozšíří okolo celého obrázku, ale až op druhém poklikání na náhled.

Přidejte i vy svůj komentář

Pole komentáře: zmenšit / zvětšit

Jméno:

Email: (Gravatar ID)

Web:

Barva trávy (otázka proti robotům):

© 2004-2012 Tom Hnatovsky - Všechna práva vyhrazena