JavaScript-Beispiele zum Thema Bilder
Mit JavaScript lassen sich Bilder auf die verschiedensten Arten behandeln. Ob als Hover-Effekt (Bildertausch) oder Diashow - nichts ist unmöglich.Bildertausch (Hover-Effekt)
Oft gesehen und gern verwendet wird der Bildertausch. Das Prinzip ist folgendes: Be-wegt der User seinen Mauscursor über ein Bild, erscheint ein anderes - klickt er darauf erscheint ein drittes. Der Effekt wird häufig als Simulation eines Buttons verwendet. Dazu nötig sind 2 bzw. 3 unterschiedliche Grafiken pro Bildertausch, wie z.B. diese:
Darstellung: Orginalbild
Darstellung: Bild, das beim Überfahren mit der Maus angezeigt wird
Darstellung: Bild, das beim Klicken angezeigt wird
<script language="JavaScript">
<!--
function doHover(b,i)
{
f = document[b].src;
f = f.substr(0,f.length-5);
f+=i+'.jpg';
document[b].src = f;
}
//-->
</script>
...
<a href="#" onmouseover="doHover('bild1','b')"
onmouseout="doHover('bild1','a')" >
<img border="0" name="bild1" src="bild_a.jpg">
</a>
Bitte beachten Sie:
- Die Ereignisse onmouseover und onmouseout funktionieren bei Netscapes 4er und älteren Browsern nur bei Links, nicht bei Bildern.
- Enthält eine Seite mehrere Bilder, die einen Hover-Effekt erhalten sollen, muss je-des Bild einen anderen Namen tragen (name-Attribut). Passen Sie dann die Parame-ter der doHover-Funktion an und übergeben Sie den geänderten Bildnamen.
<a href="#" onmouseover="doHover('bild1','b')"
onmouseout="doHover('bild1','a')"
onmousedown="doHover('bild1','c')"
onmouseup="doHover('bild1','a')">
<img border="0" name="bild1" src="bild_a.jpg">
</a>
<a href="#" onmouseover="doHover('bild1','b')"
onmouseout="doHover('bild1','a')"
onmousedown="doHover('bild1','c')"
onmouseup="doHover('bild1','a')">
<img border="0" name="bild1" src="bild1_a.jpg">
</a>
<a href="#" onmouseover="doHover('bild2','b')"
onmouseout="doHover('bild2','a')"
onmousedown="doHover('bild2','c')"
onmouseup="doHover('bild2','a')">
<img border="0" name="bild2" src="bild2_a.jpg">
</a>
<a href="#" onmouseover="doHover('bild3','b')"
onmouseout="doHover('bild3','a')"
onmousedown="doHover('bild3','c')"
onmouseup="doHover('bild3','a')">
<img border="0" name="bild3" src="bild3_a.jpg">
</a>
...
Grafiken vorladen
Besonders wichtig z.B. bei JavaScript -Spielen oder größeren Präsentationen ist, dass bestimmte Grafiken schon vorgeladen werden, damit sie gleich griffbereit sind wenn sie gebraucht werden. Mit einigen Kniffen kann JavaScript diese Aufgabe für Sie übernehmen. Das folgende Skript definiert ein Objekt Preloader mit den Methoden AddImage und LoadImages und den Ereignissen onImagesLoaded und onPercents:/*Image Preloader*/
var Preloader = new CreatePreloader();
function CreatePreloader()
{
//Frequenz der Bildpruefung
this.Frequenz = 100;
this.onImagesLoaded = OnImagesLoaded_Dummy;
this.onPercents = OnPercents_Dummy;
this.pics = new Array(); this.imgs = new Array();
this.imgs.length = this.pics.length;
for(i=0;i<this.imgs.length;i++){this.imgs[i] = new Image();}
this.checkState = false;
this.AddImage = Preloader_AddImage;
this.LoadImage = Preloader_LoadImage;
this.LoadImages = Preloader_LoadImages;
this.GetPercents = Preloader_GetPercents;
this.CheckIMGStates = Preloader_CheckIMGStates;
}
function Preloader_AddImage(s)
{ this.pics[this.pics.length] = s; return(this.pics.length-1); }
function Preloader_LoadImages()
{ for(i=0;i<this.pics.length;i++){ this.LoadImage(i); } }
function Preloader_LoadImage(i)
{
img = new Image(); this.imgs[i] = img; img.src = this.pics[i];
if(this.checkState == false)
{
window.setTimeout('Preloader.CheckIMGStates()',this.Frequenz);
this.checkState = true;
}
return(img);
}
function Preloader_GetPercents()
{
var percents,res = 0;
for(i=0;i<this.imgs.length;i++)
{ if(this.imgs[i].complete == true){ res++; } }
percents = Math.round((res/this.imgs.length)*100);
return(percents)
}
function Preloader_CheckIMGStates()
{
var res = true;
for(i=0;i<this.imgs.length;i++)
{ if(this.imgs[i].complete == false){ res = false; } }
if(typeof(this.onPercents) == 'function')
{this.onPercents(this.GetPercents())}
if(res == true && typeof(this.onImagesLoaded) == 'function')
{ this.onImagesLoaded(); }
else
{window.setTimeout('Preloader.CheckIMGStates()',this.Frequenz)}
}
function OnImagesLoaded_Dummy(){ alert('Alle Bilder geladen!'); }
function OnPercents_Dummy(i){ alert(i+'% der Bilder geladen'); }
<html><head><title>Preloader</title>
<script language="JavaScript" src="preloader.js"></script>
<script language="JavaScript">
<!--
function Fertig()
{ window.status = 'Fertig geladen. Bitte klicken Sie jetzt '+
'auf weiter!'; }
function Prozent(i)
{ window.status = 'Schon '+i+' Prozent fertig!'; }
Preloader.AddImage('bild1a.jpg');
Preloader.AddImage('bild1b.jpg');
Preloader.AddImage('bild1c.jpg');
//...
Preloader.onImagesLoaded = Fertig;
Preloader.onPercents = Prozent;
Preloader.LoadImages();
//-->
</script>
</head><body > ... </body></html>
Bannerwechsel und Diashow
Wenn Sie auf Ihrer Seite Werbebanner einblenden, dann sollen diese zumeist möglichst in einer bestimmten Abfolge angezeigt werden. Außerdem gehört jeder Banner zu einer anderen Seite, sodass beim Klick auf einen Banner auch die entsprechende Seite angezeigt werden sollte. Eine Diashow funktioniert nach dem gleichen Prinzip: Nach einer bestimmten Zeit wird ein neues Bild angezeigt. Das folgende Skript löst beide Probleme: Es definiert ein Objekt Banner mit den Methoden Add und Start und den Eigenschaften img und Frequenz welches einen Bannerwechsel bzw. eine Diashow ermöglicht:Banner = new CreateBanner()
function CreateBanner()
{
this.Frequenz = 5000;
this.img = ''; this.i = 0;
this.Imgs = new Array(); this.Links = new Array();
this.Add = Banner_Add;
this.Next = Banner_Next;
this.Start = Banner_Start;
this.onclick = Banner_onclick;
this.initi = Banner_initi;
}
function Banner_Add(s,l)
{ this.Imgs[this.Imgs.length] = s;
this.Links[this.Links.length] = l; }
function Banner_Next()
{
this.i++; if(this.i >= this.Imgs.length){this.i = 0}
document[this.img].src = this.Imgs[this.i];
window.setTimeout('Banner.Next()',this.Frequenz);
}
function Banner_Start(){ this.initi(); this.Next(); }
function Banner_initi()
{ document[this.img].onclick = Banner.onclick; }
function Banner_onclick()
{ window.open(Banner.Links[Banner.i],''); }
<html><head><title>Bannertausch</title>
<script language="JavaScript" src="banner.js"></script>
<script language="JavaScript">
<!--
Banner.img = 'BannerBild';
Banner.Add('banner1.jpg','seite1.htm');
Banner.Add('banner2.jpg','seite2.htm');
Banner.Add('banner3.jpg','seite3.htm');
//-->
</script></head>
<body onload="Banner.Start()">
<a href="#" ><img src="" name="BannerBild" border="0"></a>
</body></html>
Folge dem Mauszeiger
Soll ein Bild dem Mauszeiger folgen, handelt es sich um DHTML. Wie allgemein bekannt, wird dazu ein Layer benötigt in dem das Bild steckt. Sobald sich die Maus bewegt, muss sich der Layer auf die Position der Maus einrichten. Dazu haben wir die Funktionen setzeX und setzeY erstellt. Nun braucht nur noch die Position der Maus ausgefragt werden und fertig ist der Spaß:<html><head><title>Folge der Maus</title>
<script type="text/javascript" >
<!--
ua = navigator.userAgent.toLowerCase();
uv = parseInt(navigator.appVersion);
if(ua.indexOf('opera') != -1 && uv >= 4){browser = 'OP'}
else if(ua.indexOf('msie') != -1 && uv >= 4){browser = 'IE'}
else if(uv == 4){browser = 'NN4'}
else if(uv >= 5){browser = 'NN6'}
function Reagiere(e)
{
if(browser == 'IE'){ x = window.event.x; y = window.event.y;}
else if(browser == 'NN6') { x = e.clientX; y = e.clientY;}
else{ x = e.x; y = e.y; }
id = 'FolgeDerMaus';
if(browser == 'OP'){document.getElementById(id).style.left = x;}
else if(browser == 'IE'){document.all[id].style.left = x+'px';}
else if(browser == 'NN4'){document[id].left = x;}
else if(browser == 'NN6')
{document.getElementById(id).style.left = x+'px';}
if(browser == 'OP'){document.getElementById(id).style.top = y;}
else if(browser == 'IE'){document.all[id].style.top = y+'px';}
else if(browser == 'NN4'){document[id].top = y;}
else if(browser == 'NN6')
{document.getElementById(id).style.top = y+'px';}
}
if(document.captureEvents)
{ document.captureEvents(Event.MOUSEMOVE); }
document.onmousemove = Reagiere;
//-->
</script></head>
<body>
<div id="FolgeDerMaus"
style="position:absolute; left:0px; top:0px;">
<img src="js_0501a.jpg">
</div>
</body></html>
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Fenster und Frames
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project