BAR DE STATUS POUR LE CHARGEMENT DES IMAGES AVEC POURCENTAGE ( VRAI )

wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 - 16 avril 2006 à 23:05
jfs29 Messages postés 2 Date d'inscription vendredi 8 février 2013 Statut Membre Dernière intervention 1 mars 2013 - 1 mars 2013 à 17:59
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37087-bar-de-status-pour-le-chargement-des-images-avec-pourcentage-vrai

jfs29 Messages postés 2 Date d'inscription vendredi 8 février 2013 Statut Membre Dernière intervention 1 mars 2013
1 mars 2013 à 17:59
Après avoir effectué les modifications préconisées par les intervenants précédents, le code fonctionne parfaitement sous internet explore 9, mais la barre ne s'affiche toujours pas sous firefox 19.0 et sous Chrome Version 25.0.1364.97 m. C'est donc à regret que je dois déclarer le navigateur de Microsoft vainqueur haut la main. D'où l'intérêt de ne pas respecter las règles en général et celles du W3C en particulier. J'ai en effet passé le code à la moulinette d'un vérificateur W3C. Après les modifications conseillées, plus rien ne fonctionnait, ni le cadre de préchargement ni le préchargement lui-même.
Pour le positionnement du cadre, laissez tomber. Après quelques tâtonnements, j'ai réussi à le placer où je voulais.
jfs29 Messages postés 2 Date d'inscription vendredi 8 février 2013 Statut Membre Dernière intervention 1 mars 2013
28 févr. 2013 à 17:24
Ce code mériterait sa très bonne note de 9,22/10 si on arrivait à afficher cette satanée barre de chargement.
J'ai passé l'après-midi à essayer des trucs. Rien n'y fait. Mais je ne suis pas un expert. Y-a-t-il une erreur dans le code ?
J'aurais aimé aussi pouvoir placer le cadre de préchargement au centre de l'écran. Toutes mes tentatives de changer la position
ont échoué, même en vidant le cache de mon navigateur. Pouvez-vous m'aider ?
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
23 févr. 2008 à 08:58
>> val3512 : Si sa sert a faire patientez le visiteur et à lui indiquer l'avancement total du chargement des images
Utilisateur anonyme
19 janv. 2008 à 17:27
Oh stupeur !
En fait ma barre de chargement est toute moche seulement avec Firefox (que j'utilise 99% du temps). J'ai testé avec IE et la barre est vraiment mieux.
En fait, j'ai vu d'où venait le souci d'affichage :
la syntaxe CSS est mauvaise, et comme Firefox respecte les normes (contrairement à IE qui s'en fout), il a pas aimé.
Il faut remplacer :
style="border:1 red solid;position:absolute;left:35%;top:35%;background-color:white;" ligne 41
Par :
style="border:1;border-color:red;border-style:solid;position:absolute;left:35%;top:35%;background-color:white;"
Et de même, remplacer la ligne 86 :
style="background-color:' + bgcolor + ';width:200px;border:1 red solid;"
Par :
style="background-color:' + bgcolor + ';width:200px;border:1;border-color:red;border-style:solid;"

Ceci résolut le problème des bordures, mais on ne voit toujours pas l'évolution du chargement de la barre.
Je vais essayer de trouver une solution ...
Utilisateur anonyme
19 janv. 2008 à 16:50
Autre truc, je viens de mettre le script sur mon site, ici :
http://philippedomergue.free.fr/index2.html
Sur le menu (à gauche) et sur la page Œuvres.

Plusieurs "soucis" :
- Depuis que j'ai mis le script, j'ai une barre de défilement horizontale qui est apparue en bas de mon menu.
- La barre s'affiche même lorsque les images sont déjà mises en cache (quand on actualise la même page).
- Pour mon menu, j'aimerais faire en sorte que les images se pré-chargent, mais que la barre de chargement ne s'affiche pas. Quelle partie(s) du code je dois enlever ?

Bon, voilà. Désolé de bombarder de questions comme ça, mais je pense que ça pourra aussi être utile à d'autres utilisateurs :)
Utilisateur anonyme
19 janv. 2008 à 14:56
Bonjour, je viens de tester ce code, et cela semble fonctionner, mais je ne vois pas la barre de chargement.
Je vois seulement le texte :
Chargement : 88%
( 7 / 8 ) image(s)

Sinon, j'aimerais que ma page ne s'affiche que lorsque TOUTES les images ont été chargées et qu'on ne voie que la barre de chargement pendant ce temps. Est-ce possible ?
Je sais qu'il existe une propriété "complete" qui indique si le navigateur a terminé le chargement de l'image.

Merci d'avance pour vos réponses.
val3512 Messages postés 91 Date d'inscription dimanche 29 juillet 2007 Statut Membre Dernière intervention 26 août 2008
25 nov. 2007 à 15:58
ca ne sere pas a grand chose ... esperons que sa serve a d'autres .. le chargement d'image .
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
7 avril 2007 à 20:38
Derien ;)
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
7 avril 2007 à 19:34
lol, sa peux arriver, normale
merci pour ta note
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
7 avril 2007 à 16:35
Sinon super source pour par exemple un diaporama, une galerie photo etc...
10/10
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
7 avril 2007 à 16:33
Oui, j'avais mal lu le titre : BAR DE STATUS POUR LE CHARGEMENT DES PAGEs, comme quoi, il faut toujours tourner 7 fois sa souris autour du bouton accepter avant de cliquer :D (adaptation d'un proverbe connu).
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
7 avril 2007 à 16:00
Ok, merci 1bhrunoh de tes efforts ^^
STFOU => S'il n'y a aucune image pourquoi mettre se code....?
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
6 avril 2007 à 21:08
Euh... et si il n'y a pas d'images ?
1bhrunoh Messages postés 3 Date d'inscription mercredi 26 mars 2003 Statut Membre Dernière intervention 9 mars 2007
9 mars 2007 à 20:59
Vraiment bravo. Je n'ai pu m'enpecher de réagir... le code est simple à appréhender et facillement adaptable. Perso, si j'arrive à le rendre compatible pour la plus part des navigateur je te fais signe Wizzard ou si tu y arive avant, priere de nous faire signe. Merci encore et bonne chance à toi.
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
21 janv. 2007 à 10:59
Rajout d'une fonction pour une meilleur compatibilité entre navigateur,
il est vivement conseillé de metre à jours cette source si vous l'avez placer sur votre site.

Normalement avec cette mise a jours on ne devrait pas avoir de souci,
entre FireFox, IE, Opéra, Etc.....
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
16 janv. 2007 à 23:10
Juste une petite remarque j'ai configuré le code,
fonction ( Pre_load() ),
parseque suite une petite réflexion,
il aura besoin de cette petite configuration :

function Pre_load()
{
for( index = 0; index < document.images.length; index++ )
{
loaded[ index ] = false;
}
done = 0;
}

car il faut aussi réiniatialisé done a 0,
car supposont par exemple
qu'une partie de la page change constament,
par exemple une navigation en Ajax ( simplifier en une seul fonction [ voir mes sources ] ),
et une modification grace a innerHTML,
se qui est mon cas en ce moment même où je vous parle,
en utilisant cette 'technike" je crée un site,
mais supposont que la page (Y) fait appelle a la page (X) grace a Ajax [ qui contient 4 images ],
et que l'on utilise ce script de pourcentage,
tous marche pour l'instant,
mais ensuite supposont que (Y) fait appelle a (Z),
toujours grace a Ajax, et que la page (Z) contient elle 2images,
même en ré-initialisant grace a Pre_load(), vous obtiendrez [ 4/2 chargé, 200% ]
car done = 4; ( si elle a finit de tous charger )

Bref le résultat sera forcément érroné, donc en gros, moi je vais arrété de parler,
et pi voila, faite juste la mise à jour si vous utilisé Ajax sinon je crois pas que sa changera quelque chose.....

Bonne soiré & Bon CodE.................. ;)
DS JENOVA Messages postés 1 Date d'inscription vendredi 16 juin 2006 Statut Membre Dernière intervention 16 juin 2006
16 juin 2006 à 13:27
vraiment super code, voila deja un bout de temps que j'en cherchai un comme sa
MERCI
mickaelpfr Messages postés 197 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 avril 2009 2
19 avril 2006 à 10:23
yop belle source , pas regardé le code mais cette source pourrais m'être utile :)
cs_whoetbe Messages postés 9 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 21 novembre 2008
19 avril 2006 à 09:15
Merci wizard. Bien contourné ;-) !
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
18 avril 2006 à 18:20
Oui quand des images ont effectivement des lien morts
la bars de pourcentage ne s'efface qu'aprés le temps
indiquer dans la variable 'maxtime'
( c'est pour sa qu'il faut qu'il ne soit pas trop grand )
Environ : 15 Secondes

Voila
cs_whoetbe Messages postés 9 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 21 novembre 2008
18 avril 2006 à 13:29
Ca fonctionne bien, sauf lorsque des images sont introuvable et ne sont pas chargées.
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
17 avril 2006 à 21:01
De rien c'est moi qui te remercie d'avoir utiliser ma source !!!

@_@ Et bon prog ;)
cs_johann1 Messages postés 170 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 9 janvier 2008
17 avril 2006 à 20:59
Super génial Wizard! Merci!!! Ca marche du tonnerre! J'ai suivi ton conseil, et le résultat est là!:
http://business-internet.voicemessenger.biz/

Bref, ca donne ceci:
juste après le -->




Juste avant --->

<script> // JavaScript Document
var time = 1.5; // temps en seconde apres lequel la bar de chargement disparait une finie
var color = "#006699"; // couleur de la bar de chargement
var bgcolor = "#000033"; // fond de la bar de chargement ( ce qui n'est pas encore charger )
var font = "monospace"; // Police du text du chargement
var maxtime = 60; // temps maximum apres lequel la bar de chargement disparait

/* PAs touche */
var done = 0;
time = time * 1000;
maxtime = maxtime * 1000;
loaded = new Array();

function Pre_load()
{
for( index = 0; index < document.images.length; index++ )
{
loaded[ index ] = false;
}
}


window.setTimeout( "document.all.Loading_Img.style.visibility='hidden';", maxtime );

function Preload_Img()
{
imgs = document.images;

for( index = 0; index < imgs.length; index++ )
{
if( done >= imgs.length )
{
break;
}
else if( imgs[ index ].complete && loaded[ index ] == false )
{
done++;
loaded[ index ] = true;
}
}

if( done >= imgs.length )
{
window.setTimeout( "document.all.Loading_Img.style.visibility='hidden';", time );
}
else
{
window.setTimeout( "Preload_Img()", '50' );
}

PRC = Math.round( ( ( done / imgs.length ) * 100 ) );

preview = ''+
' ----
'+
' , '+
' , '+
' , '+
' '+
' ----
'+
' , '+
' Chargement : ' + PRC + '%
( ' + done + ' / ' + imgs.length + ' ) image(s), '+
' , '+
' '+
' ----
'+
' , '+
' '+
' '+
' '+
' '+
' '+
', '+
' , '+
' '+
' ----
'+
' , '+
' , '+
' , '+
' '+
'
';

document.all.Loading_Img.innerHTML = preview;
}

Pre_load();
Preload_Img();

</script>

ENCORE MERCI!
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
17 avril 2006 à 19:49
Je crois que j'ai trouver ( aprés avoir enregistrer la page et l'avoir ouvert )
Enlève la ligne 22 de ma source ( voir plus haut ) c'est la div ou va s'afficher le chargement.
Puis place la juste aprés la balise body de ta page ( ligne 8 du script de ton document )
Puis normalement sa devrai aller ( normalement .... )
bref si sa marche pas reviens me le signaler ( en espérant que sa marche :] )

voila ... ;)
cs_johann1 Messages postés 170 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 9 janvier 2008
17 avril 2006 à 16:39
Bonjour Wizard,

Je n'ai pas de résultat, y a t'il quelque chose qui m'a échappé!?
Je ne vois pas! Veux-tu jeter un coup d'oeil: Voici une page où j'utilise un loading que je n'aime pas trop
http://business-internet.voicemessenger.biz/
Voici où se trouve le tien: http://business-internet.voicemessenger.biz/FR/Toutes-les-selles-mexicaines.htm

Merci à toi... (Et je suis déjà persuadé du succès de ta source)
Phil_Free Messages postés 275 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 28 avril 2006 11
17 avril 2006 à 15:30
Salut,

Pour le titre tu devrais plutôt indiquer:

Barre d'avancement du chargement des images...
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
16 avril 2006 à 23:05
J'espère que cette source servira a des personnes qui en on bien besoin

;)