Avatar billede alivedk Nybegynder
03. februar 2000 - 16:47 Der er 13 kommentarer og
1 løsning

Preeloader

Jeg har været ved at udvikle en side, som både html og grafik set bliver rimlig tung at loade. Derfor har jeg prøver at få lavet et php script der preeloadede siden.. men da vores server.. som jeg fandt ud af bagefter ikke understøttede står jeg nu og mangler det i javascript!
Det skal fungere sådan at den viser en side indtil alle de andre billeder + html sider er loadede.. og derefter hopper videre..
Da jeg ikke selv er en "haj" til js, kunne jeg godt tænke mig nogle gode råd/eksempler.. færdige helst.. Da min bedste egenskab indenfor js er copy/past funktionen *S*

Hygge - A|iVe^
Avatar billede jgc Nybegynder
03. februar 2000 - 17:19 #1
Åh ja tak - også til mig (beklager denne unyttige kommentar, men så får jeg email-besked når der er nyt.
Avatar billede Slettet bruger
03. februar 2000 - 18:15 #2
Me too...
Avatar billede olebole Juniormester
04. februar 2000 - 02:23 #3
Du loader i et skjult lag, mens du viser et andet. Når alle billeder er loaded, skiftes lagene:

<html>
<head>
<script language="JavaScript">
<!--
var inx = 0;
function countUp() {
    inx++;
    if(inx == 6) {
        shift();
    }
}

function shift() {
    if (document.layers) {
        document.layers['coverlayer'].visibility = "hide";
        document.layers['mainlayer'].visibility = "show";
    }else if (document.all) {
        document.all['coverlayer'].style.visibility = "hidden";
        document.all['mainlayer'].style.visibility = "visible";
    }
}
//-->
</script>
</head>
<body bgcolor=#666666>
<div id="coverlayer" style="position:absolute; left:0px; top:0px; width: 100%; height: 97%; z-index:1; visibility: visible">
<center><br><br><br><br><br>
<h2>Loading...</h2>
</center>
</div>

<div id="mainlayer" style="position:absolute; left:0px; top:0px; width: 100%; height: 97%; z-index:2; visibility: hidden">
    <img src=p1.jpg width=352 height=452 onload=countUp();>
    <img src=p1a.jpg width=352 height=452 onload=countUp();>
    <img src=p2.jpg width=352 height=452 onload=countUp();>
    <img src=p2a.jpg width=352 height=452 onload=countUp();>
    <img src=p3.jpg width=352 height=452 onload=countUp();>
    <img src=p3a.jpg width=352 height=452 onload=countUp();>
</div>
</body>
</html>

Variablen 'inx' tælles op til antallet af billeder - her 6. Det sker ved hjælp af en 'onload' på hvert billede. Når 'inx' når 6, skiftes. Virker X-browser. Du kan nok selv fylde resten på ;-)

/VH
Ole Clausen
Avatar billede alivedk Nybegynder
04. februar 2000 - 09:37 #4
Til Ole Clausen!

Dvs at min nuværende side kommer til at ligge i samme fil som scriptet ?..

Hvor skal jeg placere min nuværende side kode så ?
Avatar billede olebole Juniormester
04. februar 2000 - 23:24 #5
Ja, det vil det. De seks billeder repræsenterer, hvad der måtte ligge af gods på din side. Altså det, der ligger mellem dine body-tags. Alt, hvad du bruger af grafik, skal have onload-kald 'countUp()'.
Avatar billede olebole Juniormester
05. februar 2000 - 05:10 #6
Så er min seneste version på gaden - understøtter også NS5...!
Her er kun ét lag, der dækker for siden. Der skal ingen onload-kald på noget her.

<html>
<head>
<style type="text/css">
#divLoading{
position:absolute;
width:100%;
height:98%;
top:0;
left:0;
background-color:white;
layer-background-color:white;
font-family:arial,helvetica;
z-index:100}
</style>
<script type="text/javascript" language="JavaScript">
// BrowserCheck
NS4 = document.layers && !document.getElementById;
IE4 = document.all && !document.getElementById;
brow5 = document.getElementById;
// Gemmer dit 'dæk lag'
function hideLoading(div){
    div = "divLoading";
    if (NS4) {
        document[div].visibility = 'hidden';
    }else if (IE4) {
        document.all[div].style.visibility = 'hidden';
    }else if (brow5) {
        document.getElementById(div).style.visibility = 'hidden';
    }

}
onload=hideLoading;
</script>
</head>
<body bgcolor="White">

<div id="divLoading"><table width=100% height=95% border=0><tr><td width=100% height=100% align=center valign=middle><h2>Loading...</h2></td></tr></table></div>

        ****************  HER SKRIVER DU RESTEN AF DIN SIDE  ****************

</body>
</html>
Avatar billede manon Nybegynder
05. februar 2000 - 05:46 #7
olebole <

Jeg er sgu´ imponeret over din kunnen og hvis alivedk tillader, så har jeg nogle spørgsmål:

1. Er det korrekt opfattet, at der er et layer overpå siden, således at man først se siden når alle images er loadet ?
( hvis ja, så er jeg endnu mere imponeret *g*)

2. Kan der indføres en animeret gif i preloaden  - eks. at punktumerne bliver animeret. ( det ser man jo så smart lavet i flash )

3. Nu viser den jo en layer med en tekst "loading ..." indtil sidens grafik/images er indlæst, men hvad hvis man har rollover effekter med, ville den i så fald også inkludere dem ?

Mvh

Manon

Avatar billede olebole Juniormester
05. februar 2000 - 06:30 #8
1 >> Ja. Du kender det fra 'Spørg Eksperten' - samme effekt.
2 >> Har ikke prøvet om animationen kører stabilt, mens den underliggende side loader. Generelt skal du kun bruge 'små' billeder i preload laget. De skulle jo gerne nå at vises, inden laget forsvinder ;-)
3 >> Ja.

Don't ask...try - learn - and have fun!

Det er tit, når man strækker og vrider de indbyggede features i retninger, deres 'fædre' aldrig havde tænkt på, at det umulige bliver muligt. Inovation kaldes det ;-)

Gå efter den!
Avatar billede manon Nybegynder
05. februar 2000 - 06:43 #9
olobole>

Tak, det lyder ganske fornuftigt.

Til spm. nr. 2, så er det kun små prikker jeg tænkte på ( skulle agere som ... i "loading ...", så det bliver ikke det store problem.

Inovation er optaget som domænenavn, så det kan ikke bruges mere ;-))

\manon

PS> Hvordan handler scriptet sig egentlig ved gamle browsere, eks. 2.0 ? Utrolig, men jeg for stadig besøgende der bruger dem.
Avatar billede olebole Juniormester
05. februar 2000 - 06:58 #10
Det er kun 4x, der kan med 'div'. Lad en document.write skrive laget ud, hvis browserens version er større end 3. Så skulle det ikke kunne genere.
Nåhh-jo, du skal nok også lige sørge for 'onload' kaldet ikke foretager sig noget, hvis browser-vers. er for lille.
Skriv, hvis du ikke kan finde ud af det - så følger 'loading-lag vers. 3.0' måske senere i dag. Jeg har været oppe hele natten, og er træt i koderne ;-)
Avatar billede alivedk Nybegynder
05. februar 2000 - 17:42 #11
Ehmm jeres svar er jeg sikker på er ganske udemærket.. But listen up..
Problemer er størrer end det..
Jeg har en side der i forvejen kører den del javascript osv.. og kan derfor ikke bruge de ovenstående scripts!
Kan man ikke lave et script der eks. har du frames .. en 1% og en 99%.. der så tjekker om den med 1% er loadet .. og hopper til en anden side.. Dvs 99% kunne være en "loading..." side... ??..
det er faktisk det eneste jeg kan bruge er jeg ked af...

Hygge!
Avatar billede manon Nybegynder
07. februar 2000 - 06:40 #12
olobole>

jeg har lige afprøvet dit script, men af en eller anden årsag virker loaderen IKKE når der er en rollover effekt med, dvs at images som skal bruges først loader nå man er inde på siden.

Hvordan for man implementeret dem i dit script ?

mvh manon
Avatar billede manon Nybegynder
07. februar 2000 - 06:46 #13
adds :

hvis jeg eks indsætter

<body bgcolor="White" onLoad="MM_preloadImages('/images/....osv

efter

}
onload=hideLoading;
</script

og før

<div id="divLoading" style="">

vil den gerne loade alle images + dem der bruges til rollover, men så vil den IKKE vidrestille sig selv!

sætter jeg

<body bgcolor="White" onLoad="MM_preloadImages('/images/....osv

efter head, vil den ikke preloade rollover men gerne vidrestiile
Avatar billede jgc Nybegynder
08. februar 2000 - 13:05 #14
Et spørgsmål mere:

Kan en preload som oleboles også virke med frames? Jeg vil gerne lave et "ventebillede" (uden frames) mens min frameopdelte hovedside loader - kan man det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester