Toon posts:

[JS]Preloaden van images

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een heel vreemd probleem bij het preloaden van images. Ik roep de functie preload aan met als argument een array van afbeeldingen.

Afbeelding voor afbeelding wordt vervolgens op de standaard manier ge-preload, en vervolgens wil ik daarna weten of de afbeelding werkelijk 100% is binnengehaald, en dat doe ik dus met de object.complete functie.

Zodra ik tussen deze controle en de preload controle een alert() zet wordt de afbeelding wel ingeladen, maar zodra ik deze weghaal lijkt het de browser allemaal te snel te gaan en laad de afbeelding totaal niet in. En krijg ik dus de melding "niet geladen ...etc.) terug die ik als debugging erin heb gezet.

Ik heb het hiervoor al geprobeerd via een simpele loop door de array, maar omdat dat resulteerde in 99% onge-preloade images wilde ik er een timeout van 50ms tussenzetten. Ook dit werkt voor geen mtr.

Onderstaande is de nu nog rommelige code.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
<script language="javascript">
function preload(){
myimages=new Array()
imagecount = preload.arguments.length;
currentimage = 0;
timeout = 50;

if (currentimage != imagecount){
    myimages[currentimage]=new Image()
    myimages[currentimage].src=preload.arguments[currentimage]
    
    //alert('pause'); 
    if (myimages[currentimage].complete){
        alert('afbeelding '+preload.arguments[currentimage]+' is volledig geladen');
    }
    else{
        alert('afbeelding '+preload.arguments[currentimage]+' is niet geladen dat is dus kut');
    }
    
    currentimage = currentimage++;
    setTimeout("preload('http://a1028.g.akamai.net/6/1028/968/444516c765e1c0/images.about.com/partners/vpn/brandbar/logo_lunabar_perl.gif','http://beheer.smash.net/micha/vriesvak.gif','http://beheer.smash.net/micha/jaws.gif','http://beheer.smash.net/micha/magnetron.gif','http://beheer.smash.net/micha/koffie.gif', 'http://beheer.smash.net/micha/micha.gif')", timeout);
    
    }
    
else{
    alert('afbeeldingen zijn allemaal geladen');
}   

}

</script>

</head>

<body onload="preload('http://a1028.g.akamai.net/6/1028/968/444516c765e1c0/images.about.com/partners/vpn/brandbar/logo_lunabar_perl.gif','http://beheer.smash.net/micha/vriesvak.gif','http://beheer.smash.net/micha/jaws.gif','http://beheer.smash.net/micha/magnetron.gif','http://beheer.smash.net/micha/koffie.gif', 'http://beheer.smash.net/micha/micha.gif');">

</body>
</html>

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Misschien code gebruiken van Dreamweaver?
code:
1
2
3
4
5
6
7
8
9
script language="JavaScript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>

en
code:
1
onLoad="MM_preloadImages('plaatje.gif','plaatje2.gif')

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Ik zou image preloaders niet met de onload doen, nou gaat je page namelijk gewoon werken terwijl er ondertussen nog steeds dingen worden geladen.
Als je de preloader zo maakt dat ie gaat preloaden zodra die de code tegenkomt wordt de onload pas getriggerd als al die plaatjes ook werkelijk binnen zijn. (als't goed is)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin