DHTML transformace a obrázky
DHTML transformace a filtry, které jsou dnes částečně dostupné ve všech prohlížečích, většina autorů stále ještě nedocenila. Přitom je můžeme použít i pro vytvoření efektního obrázku na titulní stránce, aniž bychom se museli uchylovat k Flashi nebo jiným pomocným metodám.
V našem skriptu využijeme filtr opacity pro postupnou změnu průhlednosti obrázku (o filtrech jsme již psali i v článcích o menu a o JavaScriptových bannerech). Postupnou změnou průhlednosti se tak obrázek jakoby „zjeví“. Po natažení obrázku se na jeho událost onload aktivuje funkce, která postupně mění průhlednost obrázku tak, že se obrázek pozvolna objevuje (viz ukázka).
Skript je poměrně jednoduchý – jeho úkolem je změnit průhlednost obrázku ze 100% (neviditelný obrázek) na 0% (plně viditelný obrázek). Budeme se muset také popasovat s odlišnou podporou filtrů v prohlížečích. Naštěstí je rozdíl jen mezi podporou prohlížeče Internet Explorer a ostatními – ty filtr buď nepodporují vůbec nebo jim vyhovuje stejná syntaxe (FireFox, Opera, Safari).
Problém s kompatibilitou při použití filtrů nespočívá jen v syntaxi, rozdíl je i v hodnotě průhlednosti. Internet Explorer očekává hodnotu v procentech, ostatní prohlížeče ji očekávají v rozmezí od 0 do 1. Pokud budeme počítat v procentech, pak stačí procenta pro IE prostě vydělit 100.
Příklad nastavení 70% průhlednosti pro Internet Explorer:
fimageObj.style.filter = ‚alpha(opacity=70)‘;
Příklad nastavení 70% průhlednosti pro prohlížeče FireFox, Opera a Safari:
fimageObj.style.opacity = .7;
Stránka s příkladem:
<script type=“text/javascript“>
<!– <![CDATA[
var ActOpacity = 0; // základní průhlednost – obrázek průhledný (neviditelný)
var ImgOpacity; // pomocná proměnná pro objekt obrázku
function NextOpacity(objImage)
{
if (objImage.style.opacity != null) // průhlednost pro ne-IE prohlížeče
objImage.style.opacity = ActOpacity/100;
else if (objImage.style.filter != null) // průhlednost pro IE
objImage.style.filter = „alpha(opacity=“+ActOpacity+“)“;
ActOpacity = ActOpacity+4; // konstantou je možné ovlivnit v kolika stupních se obrázek objeví
if (ActOpacity <= 100)
{
ImgOpacity = objImage;
setTimeout(‚NextOpacity(ImgOpacity)‘,5); // konstantou je možné ovlivnit rychlost objevení obrázku
}
}
//]]> –>
</script>
<div>
// na onload se zavolá „objevení“ obrázku – předává se odkaz na objekt obrázku (this)
<img id=“fadeimage“ src=“logo.gif“ width=“368″ height=“118″ border=“0″ onload=“NextOpacity(this);“ />
<div>
A ještě ukázka možnosti nastavit průhlednost pomocí CSS – opět 70% průhlednost, první řádek je pro nonIE prohlížeče, druhý řádek „zabere“ pro IE:
.imgOpacity
{
opacity: .7;
filter: alpha(opacity=70);
};
Nakonec mohu snad jen dodat, že jednoduchou úpravou skriptu docílíme namísto „zjevení“ obrázku jeho postupné slábnutí (mizení). Nejsme omezeni ani na obrázek – průhlednost můžeme takto nastavovat libovolnému elementu (například nějaké nápovědní bublině), ale také třeba celé stránce – vždy je ovšem potřeba zvážit, jaký užitek použití takového skriptu přinese uživateli.
Pozn. red.: Tento článek vyšel poprvé 25. 5. 2002. Původní verze článku a k němu vedené diskuse jsou vám k dispozici v ZIP archivech.
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
-
inPage AI: Revoluční nástroj pro tvorbu webů
3. července 2024 -
Vstupte do éry umělé inteligence: ASOME Max Studio s AMD Ryzen™ 9 7940HS
14. listopadu 2023 -
AI v programování: Jak používat GitHub Copilot (část 2)
19. února 2024 -
Zabezpečení e-mailů: Jak můžete chránit vaši firemní komunikaci
13. prosince 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