[Javascript] Afbeelding 100% geladen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 24-09 17:12
De bedoeling is dat er een laad afbeelding getoond word en op moment dat er een afbeelding geladen is met javascript geplaatst wordt.

code:
1
2
var afbeelding = document.createElement('img');
afbeelding.src = 'afbeelding.jpg';


Op moment dat de afbeelding 100% geladen is wil ik dat deze ergens word geplaatst.

code:
1
document.getElementById('div').appendChild(afbeelding);


Vraag is: Hoe weet ik dat de afbeelding 100% is geladen zodat deze het laad afbeelding kan vervangen ipv dat de afbeelding geplaatst word terwijl die nog moet worden geladen.


edit:
Volgens mij heb ik het al voor elkaar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var afbeelding = document.createElement('img');
    afbeelding.src = 'http://vistawallpapers.files.wordpress.com/2007/03/vista-wallpaper-grass-ripples.jpg';
    (
        function(afbeelding)
        {
            afbeelding.onload = function()
            {
                plaats(afbeelding);
            }
        }
    )(afbeelding);
    
function plaats(afbeelding)
{
    document.getElementById('afbeelding').appendChild(afbeelding);
}

[ Voor 28% gewijzigd door ZeroXT op 13-10-2010 17:25 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
JavaScript:
1
2
3
$('<img src="">').load(function(){
   $(this).appendTo('#afbeelding');
});


http://www.jquery.com

Overigens zijn er een aantal browsers die het event niet afvuren bij het laden uit de cache, dus laat je applicatie niet afhangen van dit gedrag (zoals hierboven :P).

Of gebruik de workaround plugin: http://github.com/peol/jq...aw/master/ahpi.imgload.js

[ Voor 95% gewijzigd door Bosmonster op 13-10-2010 18:22 ]


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Bosmonster schreef op woensdag 13 oktober 2010 @ 18:08:
Overigens zijn er een aantal browsers die het event niet afvuren bij het laden uit de cache, dus laat je applicatie niet afhangen van dit gedrag (zoals hierboven :P).
Eigenlijk nooit problemen mee gehad, zolang je het load event maar bindt voordat je het src attribuut op het img element zet.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
$.extend({
  getImage: function(url, success){
    $("<img />")
      .bind("load", function(event){
        $(this).unbind("load");
        if ($.isFunction(success))
        {
          success.apply(this, [this, url]);
        }
      })
      .attr("src", url);
  }
});


JavaScript:
1
2
3
$(document).ready(function(){
  $.getImage("foobar.jpg", function(img, url){ $(document).append(img); })
});

Acties:
  • 0 Henk 'm!

  • ZeroXT
  • Registratie: December 2007
  • Laatst online: 24-09 17:12
Maar dat is allemaal leuk en aardig maar aan jquery heb ik niets. Ik werk namelijk zonder libraries zoals ook duidelijk te zien is in de startpost. Wel neem ik de tip mee van Bosmonster.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
R4gnax schreef op donderdag 14 oktober 2010 @ 08:50:
[...]


Eigenlijk nooit problemen mee gehad, zolang je het load event maar bindt voordat je het src attribuut op het img element zet.
Die optie heb je alleen niet altijd als je het load event wilt afvangen van images die in je pagina staan (wat vaak het geval is bij unobtrusive controls).
ZeroXT schreef op donderdag 14 oktober 2010 @ 09:07:
Maar dat is allemaal leuk en aardig maar aan jquery heb ik niets. Ik werk namelijk zonder libraries zoals ook duidelijk te zien is in de startpost. Wel neem ik de tip mee van Bosmonster.
Ach, er is altijd ruimte voor verbetering ;)

[ Voor 29% gewijzigd door Bosmonster op 14-10-2010 09:52 ]