Přihlášení

Přihlásit Facebookem

MyEgo.cz › Lightbox fotka překrytá Flash reklamou - co s tím?

Lightbox fotka překrytá Flash reklamou - co s tím?

Sunday, 20.06.10 - Webdesign, CMS - autor:

Pokud máte na svém webu reklamu třetích stran, většinou bude implementována jako IFRAME a v něm Flash či text či přímo jako Flashový OBJECT. A protože tuto reklamu dodávají třetí strany a špatně používají WMODE, tak při použití Lightbox skriptů pro zvětšování fotek dochází k tomu, že Flash reklama překryje zvětšenou fotku.

Vypadá to nějak takto:

FlashLightbox překrytý Flash reklamou

Většina Lightbox skriptů naštěstí má i onLoad a onClosed události, na které můžete navěsit to, že tuto reklamu prostě schováte při otevření náhledu přes CSS visibility:hidden a po zavření Lightboxu obnovíte. Pokud nepoužíváte na svém webu IFRAME a OBJECT prvky, můžete v případě Colorboxu (založeného na jQuery) vše implementovat třeba takto triviálně - důležité jsou ty tučné části:

$(document).ready(function(){ $("a[rel='colorshow']").colorbox( {
slideshow:true,
slideshowAuto:false,
maxWidth:'95%',
maxHeight:'95%',
scalePhotos:true,
onOpen: function(){$('object,iframe').css('visibility','hidden');},
onClosed: function(){$('object,iframe').css('visibility','visible');}

} ); });

Při otevření nového náhledu fotky poté Flash a IFRAME reklama prostě zmizí, při zavření je opět zpět. Pokud používáte vlastní IFRAME / OBJECT, musíte jej ze selektorů vyjmout.

A bude to vypadat takto:

Flash je na chvíli pryčFlash je na chvíli pryč

Pokud chcete počítat s tím, že nějaké OBJECT / IFRAME prvky budou schované, můžete skript drobně přepsat tak, aby počítal s původním visibility:hidden a uschoval si hodnotu do rel atributu (ale většinou to nebývá nutné, toto řešení je mírně pomalejší):

onOpen: function(){
$('object,iframe').each(
function(){ $(this).attr('rel', $(this).css('visibility'))}
).css('visibility','hidden');
},
onClosed: function(){
$('object,iframe').each(
function(){ $(this).css('visibility', $(this).attr('rel'))}
)
}

Praktický příklad: fotogalerie MTBS.cz

Sunday, 20.06.10 - Webdesign, CMS - autor: - 11608x

Komentáře:

  1. [1] Jiří Komoň 88.146.134.154

    Elegantni reseni, ktere si poradi i s iframy, dik.
    Pokud je pripadny Flash vkladan primo jako OBJECT, da se i jednoduseji vyresit (pre)nastavenim wmode parametru:

    <param name="wmode" value="transparent" />

    odpověz na tento komentář
    1. na komentář reagoval Radek Hulán — #2
    karma: 0 Friday, 26.03.10, 13:53:51
  2. [2] Radek Hulán

    odpovídá na DarkLight — #1 WMODE v článku zmiňuji, ale většinu Flashových reklam nemáš pod kontrolou, dodávají je skripty třetích stran, takže to není řešení.

    odpověz na tento komentář karma: 10 Friday, 26.03.10, 13:55:37
  3. [3] Michal r11cn225.net.upc.cz

    Díky, opravdu jednoduché a užitečné řešení.

    odpověz na tento komentář karma: 1 Sunday, 20.06.10, 14:25:37

Přidejte nový komentář:

Pro přidání komentáře a hlasování se musíte nejdříve Registrovat Facebookem

Banan.cz