je viens chercher un peu d'aide ou d'explications sur un système que je veut mettre en place pour une galerie photo, le but étant d'afficher une image d'attente tant que toutes les photos ne sont pas chargées.
J'arrive tout à fait à faire ce que je veut sous Firefox, mais sous IE par exemple, ou encore Safari, les photos ne s'affichent jamais...
Code : Tout sélectionner
listImg = function(action){
var imgs = document.getElementsByTagName('img');
var loaded = true;
if(!action) action = 'appear';
for (var i = 0; i < imgs.length; i++) {
var img = imgs[i];
var relAttribute = String(img.getAttribute('rel'));
if (relAttribute.toLowerCase().match('slide_img')) {
if (action == 'hide') {
if (!img.complete) {
img.style.visibility = 'hidden';
$('loader').style.display = 'block';
}
img.onload = function() { listImg('test') };
}
else if(action == 'test') {
if (!img.complete) {
loaded = false;
}
} else {
img.style.visibility = 'visible';
$('loader').style.display = 'none';
}
}
}
if(loaded && action == 'test') {
listImg('appear');
}
}Mon petit doigt me dit que le pb pourrais venir du img.onload, qui serait traité différent au niveau délai par IE (ou FF)...
Je précise que cette fonction est appelée à la suite des photos, en fin de page...
A votre avis ?
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]