Preloader, mal eine andere frage
Lord-Sy
- javascript
also leute, folgendes problem:
ich benutze einen ganz einfach preloader, der jetzt auch super funktioniert, nur habe ich dabei folgendes Problem
<script language="JavaScript">
var bild = new Array();
var datei = new Array("images/1.gif","images/2.gif","images/3.gif");
var p=0 //Prozent
var b=datei.length; // Anzahl der zu ladenden Bilder
for(i=0; i<=b; i++)
{
bild[i] = new Image();
bild[i].src = datei[i];
p= (i/b)*100;
window.status=i + " von " + b + " Bildern vorgeladen " + "[" + p + "%]";
}
</script>
der zeigt in der status zeile gleich die 100% an, obwohl er noch nicht fertig geladen hat. ich weiß schon, ein browser ladet nun mal nicht jedes bild fertig bis er beim nächsten anfangt, aber wie kann ich nun den status anpassen, also wie lässt es sich überprüfen ob das bild fertig geladen wurde um erst dann die prozente zu erhöhen
thx im vorraus
Hallo,
der zeigt in der status zeile gleich die 100% an, obwohl er noch nicht fertig geladen hat. ich weiß schon, ein browser ladet nun mal nicht jedes bild fertig bis er beim nächsten anfangt, aber wie kann ich nun den status anpassen, also wie lässt es sich überprüfen ob das bild fertig geladen wurde um erst dann die prozente zu erhöhen
Probiere es so:
if(bild[i].complete)
{
p=(i/b)*100;
window.status=i + " von " + b + " Bildern vorgeladen " + "[" + p + "%]";
}
MfG, Thomas
also leute, folgendes problem:
ich benutze einen ganz einfach preloader, der jetzt auch super funktioniert, nur habe ich dabei folgendes Problem
<script language="JavaScript">
var bild = new Array();
var datei = new Array("images/1.gif","images/2.gif","images/3.gif");var p=0 //Prozent
var b=datei.length; // Anzahl der zu ladenden Bilder
for(i=0; i<=b; i++)
{
bild[i] = new Image();
bild[i].src = datei[i];
p= (i/b)*100;
window.status=i + " von " + b + " Bildern vorgeladen " + "[" + p + "%]";}
Preloader sind die Pest!
Sie tun etwas von dem ich nicht sicher bin ob ich es will und das nicht mal zuverlässig. Der browser kann das selber viel besser und wenn du das machst, weil deine Seite beim aufbauen so rumzapppelt (was sie nur im IE tut), dann hilft es dir schon weiter, wenn du die Größenangaben bei den Bildern im HTML Code machst.
aber gut zu deiner Frage:
du suchst den Onload event:
bild[i] = new Image();
bild.[i].onload = fertig;
bild[i].src = datei[i];
var counter = 0 ;
function fertig()
{
p = parseInt(bild.length/counter *100);
window.status= counter++ + " von " + bild.length + " Bildern vorgeladen " + "[" + p + "%]";
}
complete ist eine sehr unzuverlässige Eigenschaft, zumal, wenn die Datei nicht vorhanden ist (evtl. Tippfehler oder sowas) du damit nie zum Erfolg kommst.
Dafür gibt es den onerror Event.
Struppi.
Hallo Struppi!
»» Preloader sind die Pest!
Jein...
»» Sie tun etwas von dem ich nicht sicher bin ob ich es will und das nicht mal zuverlässig. Der browser kann das selber viel besser
Ja.
»» und wenn du das machst, weil deine Seite beim aufbauen so rumzapppelt (was sie nur im IE tut), dann hilft es dir schon weiter, wenn du die Größenangaben bei den Bildern im HTML Code machst.
Ja.
Aber: Man kann das auch machen, wenn man via onmouseover/out Bilder tauschen will. Da ist es viel schöner für den User, wenn die Austauschbilder schon geladen sind, bevor er mit der Maus über die sensitive Stelle geht. Und da spielt es keine Rolle, welcher Browser benutzt wird... Eine ältere Opera-Version (war das die 5.x?) zeigte sogar überhaupt nichts, wenn die Bilder nicht vorgeladen waren...
Zum Doppelklickproblem schreibe ich später noch etwas ;-)
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo!
»» <<< Das wird aus den Quote-Zeichen, wenn ich vom NT-Rechner am Arbeitsplatz poste...
Zusätzlich kommt die im Betreff genannte Fehlermeldung. Beim nochmaligen Absenden wird das Posting angenommen.
Viele Grüße aus Frankfurt/Main,
Patrick