Bild-Rotation mit Vorlade-Funktion will nicht
Rene
- javascript
Hi,
ich bastel gerade an einer Bild-Rotation mit Vorlade-Funktion (Bitte keine Diskussion zu Sinn und Unsinn solcher Spielereien. Ich mag die Dinger auch nicht!). Während die Bilder für die Bild-Rotation geladen werden, soll der Besucher schon die bereits geladenen Bilder mit Klick auf "nächstes Bild anzeigen" und "vorheriges Bild anzeigen" sich anschauen können. Leider funktioniert es nicht einwandfrei und ich bin schon am verzweifeln.
Zunächst einmal die URL: http://www.test.nordseetraum.de/testplayer.htm
Und nun die Probleme in den einzelnen Browsern, getestet mit Netlimiter (10k Up- und Download). Mit DSL kann man das Vorladen schlecht nachvollziehen, es geht einfach zu schnell!
Opera 8.5:
Beim ersten Aufruf scheint alles einwandfrei zu funktionieren. Beim zweiten Aufruf oder Neuladen der Seite passiert folgendes: "nächstes Bild anzeigen" und "vorheriges Bild anzeigen" geht, auch Skip zum ersten Bild, Rest geht nicht, keine automatische Rotation und kein Skip zum letzten Bild, Satz "Bild 15 von 15 wird geladen" verschwindet nicht. Man kann bis Bild 14 durch klicken, dann geht kein Bilderwechsel mehr, zu Bild 15 kann man gar nicht wechseln. Es scheint mir so, dass Opera am letzten zu ladenden Bild hängt.
Firefox 1.0:
Hier werden die Schaltflächen korrekt angezeigt während des Ladens. Ganz zu Beginn des Ladens etwas merkwürdige Optik/Streifen. Woher könnten die kommen? Wenn
ich während des Ladens beginne die bereits geladenen Bilder zu wechseln, geht das aber nicht, es wird zwar unten angezeigt, "Bild 5 von 15 wird angezeigt", aber die Bilder
haken. Nach dem Laden funktioniert alles einwandfrei. Man kann auch sehr zackig durchklicken, das Script verhaspelt sich nicht. Rotation funktioniert.
Internet Explorer 6:
Schaltflächen werden korrekt angezeigt während des Ladens. Wenn ich während des Ladens beginne die Bilder zu wechseln, geht das nicht. Es wird zwar unten angezeigt, "Bild 5 von 15 wird angezeigt", aber die Bilder haken. Nach dem Laden funktioniert alles einwandfrei. Nur zu hastiges klicken mag er nicht, dann passiert auch mal nichts. Manchmal will er neu nachladen/lädt neu (komischerweise immer bei Bild 1). Rotation funktioniert.
Das alles übrigens mit WinXP. Seit eineinhalb Jahren nicht neu installiert, aber läuft stets stabil. Mit Win 98 und IE 6 gleiches Ergebnis.
Falls jemand Lust hat, den Quelltext auseinander zu nehmen, wäre ich demjenigen oder derjenigen sehr dankbar, wenn er oder sie mir eine Problemlösung anbieten könnte.
Oder gibt es vielleicht bereits eine kostenlose Javascript-Bild-Rotation mit Vorladefunktion, die einwandfrei funktioniert und sich leicht an das Layout auf der oben angegeben Seite anpassen lässt? Das wär's ;-)
Vielen Dank im voraus!
Hallo,
mach es einfach mit FLash, dann hast du die Garantie das es auf jeder Plattform läuft.
gruß
jo
Hallo jo.
mach es einfach mit FLash, dann hast du die Garantie das es auf jeder Plattform läuft.
Das halte ich für ein Gerücht.
Einen schönen Dienstag noch.
Gruß, Ashura
ich bastel gerade an einer Bild-Rotation mit Vorlade-Funktion (Bitte keine Diskussion zu Sinn und Unsinn solcher Spielereien. Ich mag die Dinger auch nicht!). Während die Bilder für die Bild-Rotation geladen werden, soll der Besucher schon die bereits geladenen Bilder mit Klick auf "nächstes Bild anzeigen" und "vorheriges Bild anzeigen" sich anschauen können. Leider funktioniert es nicht einwandfrei und ich bin schon am verzweifeln.
Zunächst einmal die URL: http://www.test.nordseetraum.de/testplayer.htm
Ich hab mir den etwas umfangreichen Quellcode kurz angeschaut, aber irgendwie versteh ich nicht den Ansatz der dahinter stehen soll.
Einserseits lädst du die Bilder mit JS vor:
arr_pics0[0] = "fotos450x300/001-3-Giebel-frontal-291-9129_IMG-kl.jpg";
Anderseits auch im HTML Code:
<img src="fotos450x300/001-3-Giebel-frontal-291-9129_IMG-kl.jpg" border="0" width="2" height="2" onload="counter0()">
(was für user die JS abgeschaltet haben - wie mich - frustrierend ist, da sie alle Bilder laden aber keine Funktion haben)
Was soll da die onload Funktion bewirken?
Sinnvollerweise wendest du den onload Event bei den JS Bildern an und schmeist am besten die HTML Bilder raus.
Der onload Event bei bildern hat durchaus seine Macken, z.b wird er im IE nicht gefeuert wenn das Bild bereits im cache liegt, dann ist eine zusätzliche Prüfung auf .complete notwendig.
Ansonsten ist der Code etwas umständlich und daher schwer zu durchschauen, z.b. wäre das hier:
switch(playerspeed0){
case 2500:
document.forms[0].infofeld20.value='nächster Klick: Bilderwechsel 2 Sekunden';
break;
case 2000:
document.forms[0].infofeld20.value='nächster Klick: Bilderwechsel 1,5 Sekunden';
break;
case 1500:
document.forms[0].infofeld20.value='nächster Klick: Bilderwechsel 1 Sekunden';
break;
case 1000:
document.forms[0].infofeld20.value='nächster Klick: Bilderwechsel 0,5 Sekunden';
break;
case 500:
document.forms[0].infofeld20.value='nächster Klick: Bilderwechsel 2,5 Sekunden';
break;
Einfacher zu bewältigen, z.b. so:
document.forms[0].infofeld20.value = 'nächster Klick: Bilderwechsel '
+ parseInt( playerspeed0 * 10 ) / 10
+ ' Sekunden';
Struppi.