Guten tag aus dem Elsaß,
für unsere Firmenhomepage möchte ich gerne das Skript" Bilder in JavaScript Beispiel 6: Mit JavaScript Bilder überblenden" verwenden - das ist genau die Funktion die ich brauche um zwei Bilder via Mausklick ineinander überblenden zu lassen - Super!
Ich habe das ganze auf eine Testseite eingebaut, leider funktioniert das Script nicht im IE 6.0, im Firefox jedoch gut, im netscape auch nicht aber den lass ich mal ausser acht.....
Der IE bringt mir die Fehlermeldung das auf Zeile 33 (ich habe sie im skript farbig markiert) "filters.alpha.opacity" ist null oder kein Objekt.
Diese Zeilen sollen doch die Funktion für den IE sichern, oder?
Hier das script:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<!-- // JavaScript-Bereich für ältere Browser auskommentieren
// Funktion zum Überblenden von einem Bild auf ein anderes
// Mit den beiden Parametern werden die IDs der Bildelemente angegeben,
// die ineinander übergeblendet werden sollen.
function fade_to (element_id1, element_id2) {
// Prozess noch nicht gestartet?
if (!this.proc) {
// Überblendung auf das gleiche Bild ist nicht möglich!
if (element_id1 == element_id2) {
alert ('Sie muessen die IDs zweier unterschiedlicher HTML-Elemente angeben!');
return;
}
// Prozess starten
this.proc = window.setInterval ('fade_to(\'' + element_id1 + '\', \'' + element_id2 + '\')', 50);
}
else {
// Effekt läuft bereits
// Verweise auf die Elemente holen...
var e = document.getElementById (element_id1);
var e2 = document.getElementById (element_id2);
var opacity1, opacity2;
// Aktuelle Transparenz der beiden Bilder bei
// Opera und Mozilla-Abkömmlingen mit opacity Style-Eigenschaft..
if (!e.filters) {
opacity1 = !e.style.opacity ? 1 : parseFloat (e.style.opacity);
opacity2 = !e2.style.opacity ? 0 : parseFloat (e2.style.opacity);
}
// bzw. über die Filter des IE ermitteln.
else {
opacity1 = !e.filters.alpha.opacity ? 1 : parseFloat (e.filters.alpha.opacity) / 100;
opacity2 = !e2.filters.alpha.opacity ? 0 : parseFloat (e2.filters.alpha.opacity) / 100;
}
// Volle Transparenz von Bild 1 noch nicht erreicht?
if (opacity1 != 0) {
// Transparenz der beiden Bilder um 5% in die unterschiedlichen
// Richtungen anpassen.
opacity1 -= 0.05;
opacity2 += 0.05;
// Anpassung der Styles erfolgt wieder Browserabhängig
if (!e.filters) {
e.style.opacity = opacity1;
e2.style.opacity = opacity2;
}
else {
e.filters.alpha.opacity = opacity1;
e2.filters.alpha.opacity = opacity2;
}
}
else {
// Volle Transparenz von Bild 1 erreicht!
// Das andere Bild ist in diesem Fall vollständig eingeblendet!
window.clearInterval (this.proc);
this.proc = null;
}
}
}
// -->
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
und hier der html-code:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<HTML>
<HEAD>
<TITLE></TITLE>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<script type="text/javascript" src="fader.js"></script>
</HEAD>
<BODY>
<div id="Layer1" style="position:absolute; visibility:visible; z-index:3"><img id="fadeto" alt="" src="EB_renovation_03_nachher.jpg"></div>
<div id="Layer1" style="position:absolute; visibility:visible; z-index:3"><img id="fadeto2" alt="" src="EB_renovation_03_vorher.jpg">
<br>
<a href="javascript:fade_to ('fadeto', 'fadeto2')" title="">vorher</a><br>
<a href="javascript:fade_to ('fadeto2', 'fadeto')" title="">nachher</a>
</div>
</BODY>
</HTML>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Für einen Tipp bin ich ( - meist im Printbereich unterwegs und Javascript-Laie ) wäre ich sehr dankbar!
Beste Grüße
Hilde
