Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2011, 20h51   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut Comment controler le chargement de toutes mes images

Bonour à tous,

J'ai un petit problème,
Je charge sur une page une 20ène d'images.
Evidemment, la page met un certain pour ce charger.

Je souhaiterais comment utiliser .load() sur toutes les images.
En d'autre mots, j'aimerais bien que un loader qui troune soit afficher à la place de chauqe image, et quand tout est charger, les image s'affiche à la place.

Pourriez-vous me mettre sur la voix?

Je sais que la fonction .load() pourra mainder, mais je ne sais pas comment jongler avec l'image sablier et l'image qui se charge et qui doit etre affichées après
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 22h12   #2
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

La méthode load() n'est pas la bonne solution pour les images (voir http://api.jquery.com/load-event/ : Caveats of the load event when used with images).

Pour être certain que le DOM est "ready" et que tous les éléments graphiques de la page sont chargés avant d'agir, il faut utiliser la méthode load() sur window.

Code :
1
2
3
4
5
6
7
8
9
$(function(){
  // DOM ready
  // votre code jQuery qui n'agit pas et qui ne dépend pas des graphiques
});
 
$(window).load(function () {
  // page ready
  // votre code jQuery qui agit ou qui dépend des graphiques
});
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 23h19   #3
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Ben j'essaye ceci, mais je suis pas trop d'y arrivé. Du moins pas encore.
J'ai créé cette fonction
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
function loadingImages(folder)  
{  
    //$("."+loader).html('<img src="images/loading.gif"> saving...');  
 
	$.ajax({  
        type: "POST",  
        url: "include/loadImages.php",  
        data: {'folder' : folder},
        success: function(msg){  
            $(".load").html('reussi');  
        }  
    });
 
}
Dans mon fichier loadImages.php j'ai ceci:
Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
		$folder = $_POST['folder'];
		$a=array();
		if ($handle = opendir('images/albums/'.$folder.'/')) {
			while (false !== ($file = readdir($handle))) {
			   if(preg_match("/\.png$/", $file)) {
					$a[]=$file;
			   }else if(preg_match("/\.jpg$/", $file)) {
					$a[]=$file;
			   }else if(preg_match("/\.jpeg$/", $file)) {
					$a[]=$file;
			   }
			}
			closedir($handle);
		}
echo '<ul class="slider">';
		foreach($a as $i){
			echo '<li class="loadedImages"><img src="images/albums/'.$folder.'/'.$i.'" /></li>';
		}
echo '</ul>';
?>
J'ai aussi qui dérouler le bloque qui doit afficher les images
Code :
1
2
3
4
5
6
7
8
9
10
 
$('.aLemas').click(function() {
		if ($("#lemas").is("#lemas:hidden")) {
			$("#lemas").slideDown("slow");
 
 
		}else{
			$("#lemas").slideUp("slow");
		}
	});
Ce que j'aimerais ce que lorsque je clique sur <a class="aLemas">, la fonction loadingImages() soit appelée et que les image soit affiché dans #lemas.

Ce que je n'arrive pas faire!
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 23h24   #4
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Je pense faire un truc du genre
Code :
$("#lemas").prepend(loadingImages())
chais pas...
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 00h38   #5
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
J'ai réussi,le seul truc que je n'arrive pas. J'aimerais qu'une image (un sablier )s'affiche en attendant le la requet ajax soit terminée.
Si dessous, il y a "success".
Il n'y a pas un truc qui dit "pendant" qui agirait avant "success"?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
function loadingImages(folder,prependTo)  
{  
    //$("."+loader).html('<img src="images/loading.gif"> saving...');  
 
	$.ajax({  
        type: "POST",  
        url: "/include/loadImages.php",  
        data: "folder="+folder,
        success: function(msg){  
            $("#"+prependTo+" .container").html(msg); 
 
			$('ul.slider').cycle({ 
    			fx:     'fade', 
    			speed:  1000, 
    			timeout: 0, 
    			next:   '.next', 
    			prev:   '.prev' 
			});
        }  
    });
 
}
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 22h13   #6
Rédacteur/Modérateur
 
Avatar de Macmillenium
 
Homme
Inscription : mars 2008
Messages : 2 290
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mars 2008
Messages : 2 290
Points : 3 208
Points : 3 208
Regarde plutôt du coté du plugin Lazy Load.
__________________
Je ne réponds pas aux questions techniques par MP.
Macmillenium est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h33.


 
 
 
 
Partenaires

Hébergement Web