V dnešním článku vám přinášíme JavaScript, který umožní automaticky obměňovat obrázky na vašich webových stránkách v nastaveném časovém intervalu. Skript lze využít s úspěchem nejen při rotaci reklamních bannerů, ale i v mnoha dalších případech…

Postup si vysvětlíme na jednoduchém příkladu. Necháme rotovat čtyři jednoduché obrázky. Po kliknutí na obrázek bude návštěvník přesměrován na stránku, která odpovídá zobrazenému obrázku.

Ukázka

V prvním kroku si nejprve nadefinujeme pole obrsrc a cesta. Do těchto proměnných zadáme URL jednotlivých obrázků (pole obrsrc) a URL stránek, kam po kliknutí bude návštěvník přesměrován (pole obrsrc). Celkový počet obrázků, které budou postupně zobrazovány zadáme pomocí proměnné pocet. Ještě zbývá doplnit časový interval, po jehož uplynutí dojde k výměně obrázku (proměnná doba, udává se v milisekundách).

V dalším kroku načteme obrázky do cache počítače. Tím bude zajištěno rychlé načítání obrázků při výměně, protože obrázky jsou již uloženy v počítači a nemusí být načítány z webového serveru. K tomu využijeme funkci new Image(). Kód, který vložíme do hlavičky dokumentu pak vypadá následovně:

<script language=“javascript“>
<!–
doba=5000;
pocet = 4;
rotator=0;
obrsrc = new array(pocet);
cesta =new array(pocet);
obrsrc[0]=“obrazek1.gif“; cesta[0]=“http://www.interval.cz“;
obrsrc[1]=“obrazek2.gif“; cesta[1]=“http://www.inshop.cz“;
obrsrc[2]=“obrazek3.gif“; cesta[2]=“http://www.zoner.cz“;
obrsrc[3]=“obrazek4.gif“; cesta[3]=“http://www.czechia.cz“;
obr = new array(pocet);
for (i=0; i < pocet; i++){
obr[i]= new image();
obr[i].src= obrsrc[i]
}
//–
</script>


Dále vytvoříme funkci, která způsobí vlastní výměnu obrázku. Interval mezi jednotlivými výměnami obrázků nastavíme pomocí funkce setTimeout (funkce a interval v milisekundách).

function rotate() {
if (rotator==pocet) {rotator=0;}
document.images[„obraz“].src = obrsrc[rotator];
rotator = rotator + 1;
window.setTimeout(‚rotate();‘,doba);
}


Tuto funkci budeme volat ihned po načtení stránky. Proto do tagu <BODY> přidáme parametr onLoad a to následovně:

<body onLoad=“rotate();“>


HTML kód vlastního obrázku pak vypadá takto:

<a href=“http://www.interval.cz“ onclick=“return poslat();“>
<img name=“obraz“ src=“obrazek1.gif“ border=“0″ width=“150″ height=“150″></a>


Důležitý je především parametr name, pomocí kterého identifikujeme obrázek ve funkci rotate(). Po kliknutí na obrázek je volána funkce poslat(), která způsobí přesměrování uživatele na stránku odpovídající zobrazenému obrázku.

function poslat() {
window.location=cesta[rotator-1];
return false;
}


Pokud prohlížeč návštěvníka nepodporuje JavaScript, zobrazí se pouze obrázek nastavený v parametru src tagu <img>, a po kliknutí na obrázek bude přeměrován na adresu uvedenou v tagu anchor (<a>). Pro úplnost Vám na závěr ukážeme kompletní zdrojový kód našeho příkladu, který si můžete zkopírovat pro své vlastní potřeby:

<html>
<head>
<title>Rotace obrázků</title>
<script language=“javascript“>
<!–
doba=5000
pocet = 4
rotator=0
obrsrc = new Array(pocet)
cesta =new Array(pocet)
obrsrc[0]=“obrazek1.gif“; cesta[0]=“http://www.interval.cz“;
obrsrc[1]=“obrazek2.gif“; cesta[1]=“http://www.inshop.cz“;
obrsrc[2]=“obrazek3.gif“; cesta[2]=“http://www.zoner.cz“;
obrsrc[3]=“obrazek4.gif“; cesta[3]=“http://www.czechia.cz“;
obr = new Array(pocet);
for (i=0; i < pocet; i++){
obr[i]= new Image();
obr[i].src= obrsrc[i]
}
function rotate() {
if (rotator==pocet) {rotator=0;}
document.images[„obraz“].src = obrsrc[rotator];
rotator = rotator + 1
window.setTimeout(‚rotate();‘,doba);
}
function poslat() {
window.location=cesta[rotator-1];
return false;
}
//–></script>
</head>
<body onLoad=“rotate();“>
<a href=“http://www.interval.cz“ onclick=“return poslat();“>
<img name=“obraz“ src=“obrazek1.gif“ border=“0″ width=“150″ height=“150″></a>
</body>
</html>

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

1 Příspěvěk v diskuzi

  1. Pokud se týká javascriptu, jsem naprostý začátečník. Proto se omlouvám, pokud je moje otázka příliš triviální. Nerozumím jedné věci. Píšete o načtení obrázků do cache, ale pak stejně používáte původní src.
    Nemělo by tam být správně
    document.images[„obraz“].src = obr[rotator].src;
    místo
    document.images[„obraz“].src = obrsrc[rotator]; ?

    Děkuji za objasnění.

Odpovědět