11548 sujets

JavaScript, DOM et API Web HTML5

Je souhaite afficher une icone pendant le chargement d'une image. Pour ce faire j'utilise la méthode, malheureusement erronée suivante :
document.getElementById("map").src=responseimg;
while(!document.getElementById("map").complete);
//Changement de classe permettant le réaffichage de la carte
document.getElementById("map").className="visible";
document.getElementById("loading").className="hidden";


Malheureusement ça ne fonctionne pas car le navigateur affiche l'image responseimg pendant qu'elle charge!

J'en suis arivé à penser qu'un changement direct du .src ne modifie pas le .complete de l'image et donc ce dernier reste à true ....

Comment faire pour contrer cela? Merci!
Modifié par orlin61 (04 Mar 2007 - 23:43)
Salut,

La méthode que tu utilises n'est pas conseillée, car elle bloque le navigateur pendant le chargement de l'image.

Une méthode alternative est de passer par l'événement "load" de l'image, avec un code ressemblant à ça :
var mapImg = document.getElementById("map");

mapImg.onload = function() {
  mapImg.className = "visible";
  document.getElementById("loading").className = "hidden";
};
mapImg.src = responseimg;

Par ailleurs, pourras-tu s'il te plaît faire le tour de tes sujets sur le forum pour marquer ceux qui le sont comme résolus ?
Modifié par Julien Royer (04 Mar 2007 - 23:32)