webForumDet fria alternativet

Preloader

3 svar · 179 visningar · startad av AboO

AboOMedlem sedan juni 2002218 inlägg
#1

Jag kan typ ingenting om javscript. Men jag vill ändå ha en "preloader" på min sida. Så jag laddade hem ett script. Men jag skulle ville ändra lite på det. Någon som kanske kan hjälpa mig?

1. När den laddat klart vill jag att en "släpp in mig" länk ska komma upp, istället för att skickas vidare automatiskt.

2. Det står "// Color the preloadbar is starting and ending with - enter 1st, 3rd and 5th numbers/letters of color code"
Vad menas med det egentligen? Jag försökte få den helt röd men lyckades inte.

Så här ser koden ut:

<script language="JavaScript1.2">
<!-- begin hiding
// (C) 2000 Marcin P Wojtowicz [one_spook@hotmail.com]. All rights reserved.
// Obtain permission before selling/redistributing in any medium.

startingColor = new Array() // <-- Do not modify!
endingColor = new Array() // <-- Do not modify!

// YOU MAY MODIFY THE FOLLOWING:
var yourImages = new Array("images/bg_pattern.gif","images/diagonal_bg.gif","images/head.jpg") 
var locationAfterPreload = "http://www.hemsida.nu" 
var preloadbarWidth = 300 
var preloadbarHeight = 20 
var backgroundOfGradient = "#ffffff" 

// Color the preloadbar is starting with - enter 1st, 3rd and 5th numbers/letters of color code
startingColor[0] = "r" 
startingColor[1] = "r"
startingColor[2] = "r"

// Color the preloadbar is going to end up with - enter the 1st, 3rd and 5th numbers/letters of color code
endingColor[0] = "r"
endingColor[1] = "r"
endingColor[2] = "r"

var gap = 5 

// DO NOT MODIFY ANYTHING BEYOND THIS POINT!!!

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 = " [" + percent + "%]";
		pending--;
		checkLoad();
		return;
	}
	eval("document.all.cell" + (h+1) + ".style.backgroundColor = hilite[h]");;
	h++;
	setTimeout("changeto()",1);
}
defaultStatus = "[0%]."
// end hiding -->
</script>

  <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)">Jag orkar inte vänta!</a> &nbsp;<a href="http://www.hemsida.nu"></a></small></p></font>')
loadImages();
// end hiding -->
</script>
nitro2k01Medlem sedan aug. 20037 630 inlägg
#2

Denna lösning verkar kanske lite överdriven, men härkommer svar på frågorna:

1) För att göra dett ändra följande rader(Du får hitta dem själv :) ):

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

// och ta bort följande rad
if (!document.all) location.replace(locationAfterPreload)

2) Till färgkoderna ska du använda tecken nummer 1, 3 och 5 i hexkoden för färgen(Om man interäknar med #-tecknet). Hexkoden för röd är #ff0000, så koden blir:

 
// Color the preloadbar is starting with - enter 1st, 3rd and 5th numbers/letters of color code
startingColor[0] = "f" 
startingColor[1] = "0"
startingColor[2] = "0"

// Color the preloadbar is going to end up with - enter the 1st, 3rd and 5th numbers/letters of color code
endingColor[0] = "f"
endingColor[1] = "0"
endingColor[2] = "0"
AboOMedlem sedan juni 2002218 inlägg
#3

Tack. Den blev röd :) och nu skickas man inte vidare automatiskt. Men hur gör jag så det kommer upp en länk när den laddat klart? Just nu händer ingenting. Utan den laddar, och stannar.

nitro2k01Medlem sedan aug. 20037 630 inlägg
#4

Det finns ju en länk där det står "Orkar inte vänta...". Ändra texten till något roligare som "Välkommen in" och använd den?

Genererad på 383 ms · cache AV · v20260730165559-full.f96bc7eb