Gif au chargement d'une image
Fermé
Sieg Hart
Messages postés
68
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
16 septembre 2009
-
21 sept. 2008 à 02:22
Sieg Hart Messages postés 68 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 16 septembre 2009 - 23 sept. 2008 à 01:43
Sieg Hart Messages postés 68 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 16 septembre 2009 - 23 sept. 2008 à 01:43
A voir également:
- Gif au chargement d'une image
- Image iso - Guide
- Comment agrandir une image - Guide
- Acronis true image - Télécharger - Sauvegarde
- Légender une image - Guide
- Comment créer un gif - Guide
8 réponses
kryoportail
Messages postés
222
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
22 mai 2014
125
21 sept. 2008 à 06:25
21 sept. 2008 à 06:25
Bonjour,
Tu peux par exemple mettre tes 2 images dans ton code HTML.
Et tu surveilles l'événement 'onload' qui surviendra après chargement complet de ta grosse image. Lorsque c'est le cas tu appelles une fonction qui sera chargé simplement d'effacer ou supprimer l'image de chargement du DOM.
Si tu n'as jamais surveillé d'événement en Javascript, tu peux utiliser la fonction 'addEventListener', voir : http://www.aliasdmc.fr/coursjavas/cours_javascript89.html attention la fonction est différente sous Internet Explorer !...
Ça peut être sympa de le faire à la mano une fois pour bien comprendre comment cela fonctionne... Mais entre les standards IE et Mozilla, cela devient vite rébarbatif et ennuyeux de programmer pour les uns et pour les autres...
Pour pas te 'prendre la tête', je te conseille d'utiliser rapidement une librairie toute faite comme 'moontools' : https://mootools.net/ ou 'jquery' : https://jquery.com/ Le code que tu feras pour l'un sera compatible avec les autres...
Exemple Jquery :
<div><img id="MYBigFile" src="MYBigFile.jpeg" style="display: none;"><img id="Loading" src="Loading.gif"></div>
// Sur fin de chargement de l'image 'MYBigFile' supprime l'élément 'Loading' et fait apparaitre progressivement (200ms) MYBigFile ....
$('#MYBigFile').load(function () {
$('#Loading').remove();
$('#MYBigFile').show(200);
});
T'avais dit... rapide et simple !....
Note: J'ai pas testé, mais cela doit être quelque chose dans ce gout la !
Amicalement,
S@M...
http://kryoportail.ath.cx
Tu peux par exemple mettre tes 2 images dans ton code HTML.
Et tu surveilles l'événement 'onload' qui surviendra après chargement complet de ta grosse image. Lorsque c'est le cas tu appelles une fonction qui sera chargé simplement d'effacer ou supprimer l'image de chargement du DOM.
Si tu n'as jamais surveillé d'événement en Javascript, tu peux utiliser la fonction 'addEventListener', voir : http://www.aliasdmc.fr/coursjavas/cours_javascript89.html attention la fonction est différente sous Internet Explorer !...
Ça peut être sympa de le faire à la mano une fois pour bien comprendre comment cela fonctionne... Mais entre les standards IE et Mozilla, cela devient vite rébarbatif et ennuyeux de programmer pour les uns et pour les autres...
Pour pas te 'prendre la tête', je te conseille d'utiliser rapidement une librairie toute faite comme 'moontools' : https://mootools.net/ ou 'jquery' : https://jquery.com/ Le code que tu feras pour l'un sera compatible avec les autres...
Exemple Jquery :
<div><img id="MYBigFile" src="MYBigFile.jpeg" style="display: none;"><img id="Loading" src="Loading.gif"></div>
// Sur fin de chargement de l'image 'MYBigFile' supprime l'élément 'Loading' et fait apparaitre progressivement (200ms) MYBigFile ....
$('#MYBigFile').load(function () {
$('#Loading').remove();
$('#MYBigFile').show(200);
});
T'avais dit... rapide et simple !....
Note: J'ai pas testé, mais cela doit être quelque chose dans ce gout la !
Amicalement,
S@M...
http://kryoportail.ath.cx
Sieg Hart
Messages postés
68
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
16 septembre 2009
19
23 sept. 2008 à 01:43
23 sept. 2008 à 01:43
Et pour les .png ca marche aussi?
Pour la page que je voulais ça marche nickel (avec des .jpg), j'ai voulu tester pour une autre page et ca marche pas :S
j'ai essayé de faire comme ca
http://interface.eyecon.ro/demos/carousel.html
Mais les miniatures, ben c'est bizarre, parfois le .gif s'affiche et reste sur certaine images, parfois c'est le tour d'autre images alors qu'elles sont sensé être en cache...
C'est peut être du a l'utilisation de multiple librairies?
Pour la page que je voulais ça marche nickel (avec des .jpg), j'ai voulu tester pour une autre page et ca marche pas :S
j'ai essayé de faire comme ca
http://interface.eyecon.ro/demos/carousel.html
Mais les miniatures, ben c'est bizarre, parfois le .gif s'affiche et reste sur certaine images, parfois c'est le tour d'autre images alors qu'elles sont sensé être en cache...
C'est peut être du a l'utilisation de multiple librairies?
Sieg Hart
Messages postés
68
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
16 septembre 2009
19
21 sept. 2008 à 17:39
21 sept. 2008 à 17:39
Merci de ta réponse.
J'avais envisagé le Jquery mais ... comment dire ... je comprend pas trop la mise en place de ton exemple :S
J'ai ma page, j'inclus le jquery.js, je met mon image dans div que tu m'a donné, mais après la fonction que tu m'a donné je l'utilise comment???
J'ai 5fichiers :
-Une image bien lourde a charger
-un petit gif de chargement
-un .html avec cela dedans
-le pack jquery
-le fct.js avec la fonction dedans
Mais j'ai que le gif qui s'affiche, l'image lourde s'affiche jamais :S
J'avais envisagé le Jquery mais ... comment dire ... je comprend pas trop la mise en place de ton exemple :S
J'ai ma page, j'inclus le jquery.js, je met mon image dans div que tu m'a donné, mais après la fonction que tu m'a donné je l'utilise comment???
J'ai 5fichiers :
-Une image bien lourde a charger
-un petit gif de chargement
-un .html avec cela dedans
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=iso-8859-15" /> <title>Exemple</title> <script type="text/javascript" src="jquery-1.2.6.pack.js"></script> <script type="text/javascript" src="fct.js"></script> </head> <body> <div><img id="MYBigFile" src="image_1900x1200.jpg" style="display: none;"><img id="Loading" src="loading.gif"></div> </body> </html>
-le pack jquery
-le fct.js avec la fonction dedans
$('#MYBigFile').load(function () { $('#Loading').remove(); $('#MYBigFile').show(200); });
Mais j'ai que le gif qui s'affiche, l'image lourde s'affiche jamais :S
Sieg Hart
Messages postés
68
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
16 septembre 2009
19
21 sept. 2008 à 19:12
21 sept. 2008 à 19:12
A la place j'ai testé ca (c'est pareil mais bon...)
et
Ça marche, mais l'image lourde ne s'affiche pas d'un coup, c'est comme si elle n'avais pas encore fini d'etre chargé.
et surtout, l'image que je voudrai charger est le fond d'un div que j'appelle comme ca
Comment faire si c'est pas un <img>mais le fond d'un div???
Et j'ai beau changer le "show" par un "fadeIn" ça change rien :S
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=iso-8859-15" /> <title>Exemple</title> <script type="text/javascript" src="jquery-1.2.6.pack.js"></script> <script type="text/javascript" src="fct.js"></script> </head> <body> <div id="UN"><img id="MYBigFile" src="[AnimePaper]wallpapers_Macross-Frontier_Anime-SEED-Otaku(1.58)_1900x1200_82467.jpg"></div> <div id="DEUX"><img id="Loading" src="loading.gif"></div> </body> </html>
et
$(function(){ $("#MYBigFile").load(function () { $("#DEUX").remove(); $("#UN").show(200); });
Ça marche, mais l'image lourde ne s'affiche pas d'un coup, c'est comme si elle n'avais pas encore fini d'etre chargé.
et surtout, l'image que je voudrai charger est le fond d'un div que j'appelle comme ca
<div id="conteneur" style="background:url(images/fond/fond_accueil.jpg) no-repeat;">
Comment faire si c'est pas un <img>mais le fond d'un div???
Et j'ai beau changer le "show" par un "fadeIn" ça change rien :S
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
smokey34
Messages postés
4
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
22 septembre 2008
22 sept. 2008 à 14:49
22 sept. 2008 à 14:49
c'est sympa la barre de telechargement mais est ce vraiment nécessaire?
https://www.16bit.fr/
https://www.16bit.fr/
kryoportail
Messages postés
222
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
22 mai 2014
125
22 sept. 2008 à 14:47
22 sept. 2008 à 14:47
Re,
Argh ! Je crois que les images enregistrées en JPEG 'progressive' déclenche l'événement 'onload' dès le début de leur téléchargement, cela pourrait être un début d'explication...
Amicalement,
S@M...
http://kryoportail.ath.cx
Argh ! Je crois que les images enregistrées en JPEG 'progressive' déclenche l'événement 'onload' dès le début de leur téléchargement, cela pourrait être un début d'explication...
Amicalement,
S@M...
http://kryoportail.ath.cx
kryoportail
Messages postés
222
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
22 mai 2014
125
22 sept. 2008 à 17:23
22 sept. 2008 à 17:23
Re,
Je t'ai fait un exemple : http://kryoportail.ath.cx/test/test.html
Tu n'as cas regarder et modifier le source si tu veux....
Par contre en image de fond, je ne suis pas sur que ce soit possible et comme l'a dit 'smokey34', pas forcement indispensable... Puisque par définition, une image de fond doit se charger rapidement puisque faisant partie du design de ton site ...
Ou pour résonner dans le sens inverse, si ton image est longue a charger, c'est qu'elle est importante pour le contenu de ton site, par conséquent la balise la mieux adaptée à la situation est la balise 'img'.
Cordialement,
S@M...
http://kryoportail.ath.cx
Je t'ai fait un exemple : http://kryoportail.ath.cx/test/test.html
Tu n'as cas regarder et modifier le source si tu veux....
Par contre en image de fond, je ne suis pas sur que ce soit possible et comme l'a dit 'smokey34', pas forcement indispensable... Puisque par définition, une image de fond doit se charger rapidement puisque faisant partie du design de ton site ...
Ou pour résonner dans le sens inverse, si ton image est longue a charger, c'est qu'elle est importante pour le contenu de ton site, par conséquent la balise la mieux adaptée à la situation est la balise 'img'.
Cordialement,
S@M...
http://kryoportail.ath.cx
Sieg Hart
Messages postés
68
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
16 septembre 2009
19
22 sept. 2008 à 22:38
22 sept. 2008 à 22:38
Pour l'histoire du fond du div j'ai trouvé en utilisant une <img> et la plaçant dans une <div> en position absolute.
Merci kryoportail c'est exactement se que je cherchai ;-)
Jquery c'est bien mais des qu'on utilise plusieurs bibliothèque, c'est le bordel...
Merci kryoportail c'est exactement se que je cherchai ;-)
Jquery c'est bien mais des qu'on utilise plusieurs bibliothèque, c'est le bordel...