[JavaScript] problem mit preloader

the_hebster

Banned
Registriert
März 2001
Beiträge
251
problem mit preloader

hi leute,

und zwar hab ich folgendes problem:

ich will mir für ne webseite einen einfachen java-preloader bauen.

nun habe ich folgendes problem. alle grafiken werden vorgeladen, ausser die letzte.

beim letzten image bleibt der loader einfach stehen.

was habe ich falschgemacht?


hier ist der quelltext:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#000000">
<script language=JavaScript1.2>

<!-- begin hiding



startingColor = new Array() // 
endingColor = new Array() // 


// 

var yourImages = new Array("1.jpg" , "2.jpg" , "3.jpg") // 

var locationAfterPreload = "home.htm" // 

var preloadbarWidth = 300 // 

var preloadbarHeight = 13 // 

var backgroundOfGradient = "#000000"



// 
startingColor[0] = "3"

startingColor[1] = "0"

startingColor[2] = "0"



// 

endingColor[0] = "9"

endingColor[1] = "0"

endingColor[2] = "0"


var gap = 7 // 




// 


if (!document.all) location.replace(locationAfterPreload)

var a = 10, b = 11, c = 12, d = 13, e = 14, f=15, i, j, ones = new Array(), sixteens = new Array(), diff = new Array();

var convert = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"), imgLen = yourImages.length;

var loaded = new Array(), preImages = new Array(), currCount = 0, pending = 0, h = 0, hilite = new Array(), cover = new Array();

var num = Math.floor(preloadbarWidth/gap);

for (i = 0; i < 3; i++) {

startingColor[i] = startingColor[i].toLowerCase();

endingColor[i] = endingColor[i].toLowerCase();

startingColor[i] = eval(startingColor[i]);

endingColor[i] = eval(endingColor[i]);

diff[i] = (endingColor[i]-startingColor[i])/num;

ones[i] = Math.floor(diff[i]);

sixteens[i] = Math.round((diff[i] - ones[i])*15);

}

endingColor[0] = 0;

endingColor[1] = 0;

endingColor[2] = 0;

i = 0, j = 0;

while (i <= num) {

hilite[i] = "#";

while (j < 3) {

hilite[i] += convert[startingColor[j]];

hilite[i] += convert[endingColor[j]];

startingColor[j] += ones[j];

endingColor[j] += sixteens[j];

if (endingColor[j] > 15) {

endingColor[j] -= 15;

startingColor[j]++;

}

j++;

}

j = 0;

i++;

}

function loadImages() {

for (i = 0; i < imgLen; i++) {

preImages[i] = new Image();

preImages[i].src = yourImages[i];

loaded[i] = 0;

cover[i] = Math.floor(num/imgLen)*(i+1)

}

cover[cover.length-1] += num%imgLen

checkLoad();

}

function checkLoad() {

if (pending) { changeto(); return }

if (currCount == imgLen) { location.replace(locationAfterPreload); return }

for (i = 0; i < imgLen; i++) {

if (!loaded[i] && preImages[i].complete) {

loaded[i] = 1; pending++; currCount++;

checkLoad();

return;

}

}

setTimeout("checkLoad()",10);

}

function changeto() {

if (h+1 > cover[currCount-1]) {

var percent = Math.round(100/imgLen)*currCount;

if (percent > 100) while (percent != 100) percent--;

if (currCount == imgLen && percent < 100) percent = 100;

defaultStatus = "Loaded " + currCount + " out of " + imgLen + " images [" + percent + "%].";

pending--;

checkLoad();

return;

}

eval("document.all.cell" + (h+1) + ".style.backgroundColor = hilite[h]");;

h++;

setTimeout("changeto()",1);

}

defaultStatus = "Loaded 0 out of " + imgLen + " images [0%]."

// end hiding -->

</script>


<b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Bilder werden geladen...
</font></b><br>
<script language=JavaScript1.2>

<!-- beging hiding

document.write('<table border="0" cellpadding="0" cellspacing="0" width="' + preloadbarWidth + '"><tr height="' + preloadbarHeight + '" bgcolor="' + backgroundOfGradient + '">');

for (i = 0; i < num; i++) {

document.write('<td width="' + gap + '" id="cell' + (i+1) + '"></td>');

}

document.write('</tr></table>');

document.write('<p><small><a href="javascript:location.replace(locationAfterPreload)">Ladevorgang Überspringen</a></small></p></font>')

loadImages();

// end hiding -->

</script>
</body>
</html>
Edited by Steffen: Ich habe mal die Code-Tags eingebaut, bitte denk' da beim nächsten Mal dran! :)
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
da du schon 2 Tage wartest und dir keiner schreibt hab ich mir mal gedacht, da ich mich mit JavaScript nicht so auskenne, dir mal en anderen Code zu geben, wenn du willst!
Geh einfach mal auf: http://www.brd-clan.de/ und sag mir wie er dir gefällt....den Code kannste ja gleich nehmen!
Mfg toniguenther
 
Zurück
Oben