[ ThickBox, GreyBox, LightBox, javascript, otvírání do nového okna, obrázky, galerie, hack, návod ]
16482 čtenářů | Přidat článek na: Facebook
GreyBox - jak jednoduše nahradit Lightbox
I když nejsem zrovna nějaký webdesignerský
specialista, tyto javascriptové hračičky mám docela rád. Když jsem
nedávno objevil krásnou náhradu za stávající skript Lightbox, který také
slouží například k efektnímu otvírání obrázků v novém
„okně“, ale přesto bez opuštění dané stránky, rozhodl jsem se
nově objevený GreyBox, který umí mnohem víc, implementovat na svůj web.
Jenže jsem narazil na problém co se stránkami, které již Lightbox
používají?
Něco podobného jsem pro své stránky o počasí potřeboval. Místo otevírání a zobrazování informací v klasickém iframe můžu teď zobrazovat informace v šikovném okénku, bez opuštění mé stránky, bez zvýšených nároků na data, která se při použití iframe načítala vždy kompletní. To vše teď odpadlo. Jenže byl tu problém. Na stávajících stránkách, ve článcích a u mnoha obrázků byl použit Lightbox (klausule rel=„lightbox“) a to by znamenalo současně provozovat oba systémy – jak starý Lightbox, tak u nových článků GreyBox. A to mě samozřejmě netěšilo a tak jsem se rozhodl, že se to pokusím vyřešit.
Myšlenku ruční úpravy starších článků jsem si nepřipouštěl a do modifikace článků na úrovní databáze jsem se také neměl moc chuti pouštět. A tak jsem se nejprve rozhodl zkusit cestu nejmenšího odporu, tedy modifikaci onoho javascriptu GreyBox. Nějaký zparchantělý javascript mě přece jako ostříleného a dlouholetého programátora v C/C++/C# nemůže pokořit. A nakonec to ani moc nebolelo a přidáním jednoho řádečku do kódu GreyBox se vše vyřešilo. A právě o tuto modifikaci, která možná mnohým ulehčí život a přerod z Lightboxu (a jiných podobných skriptů) na GreyBox, se s vámi chci dnes podělit
Kompletní dokumentaci a stažení GreyBoxu najdete na oficiálních stránkách produktu. Poté, co jej implementujete (podle popisu) a vyzkoušíte jeho funkčnost, můžete se pustit do následující malé úpravy. Týká se výhradně souboru gb_scripts.js, kde najdete řádky:
var rel=a.getAttribute(„rel“);
if(rel.indexOf(„gb_“)==0){
což bude kolem řádku číslo 165, a mezi ně vložíte tento kousek kódu:
if(rel==„lightbox“) {
rel=„gb_image[]“;}
A to je vše. Přiznávám, je to takový malý ojeb, ale rychlý,
jednoduchý a hlavně funkční. Je to vlastně jakási konverze
z rel=„lightbox“ používáno Lightboxem na
rel=„gb_image[]“ použité u GreyBoxu. A poté už
můžete klidně stávající Lighbox zrušit bez obav z toho, že jej ve
starších článcích či stránkách používáte. Po této úpravě se
i v těchto případech (kdy je u odkazu rel=„lightbox“)
bude používat GreyBox. Na závěr ještě jedna malá drobnost. Zhruba na
řádku 8 v souboru gb_scripts.js je definována proměnná
this.overlay_click_close=false;. Změnou na hodnotu true
(tj. this.overlay_click_close=true;) můžete okno GreyBoxu kdykoliv
opustit také kliknutím mimo něj – do zešedlé oblasti hlavního okna.
Hodně zdaru.

Nejnovější zprávy a články na Magazínu:
Meteoservis 1.20 pro Windows Phone - další vylepšení vašeho počasí
Update aplikace Meteoservis 1.10 pro Windows Phone
Meteoservis - konečně pořádné počasí pro Windows Phone
Francouzský pilaf neboli rizoto trochu jinak
Meteoservis 1.20 pro Android - kvalitnější snímky a další vylepšení
Meteoservis 2.50 pro Windows Mobile - nový vzhled a WiFi









Článek je zařazen v rubrice:

tak by me zajimalo, jak udelat aby slo opravdu nad iframe, nejak nefacha :(