Bonjour à tous,
je suis actuellement en train de développer une sorte de portfolio avec beaucoup de galeries d'images. J'utilise de l'AJAX via JQuery pour charger dynamiquement ces images contenues dans divers fichiers HTML.
Une fois ces images chargées, un script "carrousel" s’exécute sur ces images. Malheureusement, les images ne sont complètement pas chargées et le script s' exécute trop tot.
J'aimerai que le chargement de ces images se finisse avant que le script se lance.
Voici un bout de mon code:
J'ai réussi à faire l'équivalent en statique sans AJAX mais j'aimerai le rendre plus esthétique, d'où AJAX. Sauf si quelqu'un trouve une alternative.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 $(document).ready (function(){ $("#menu a").click(function(e) { e.preventDefault(); page = $(this).attr("href"); $.ajax ({ url: page, cache: false, success: function(html){ afficher(html); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert (textStatus); } }) }); }); function afficher(data){ $("#content").fadeOut(500, function(){ $("#content").empty(); $("#content").append(data).fadeIn(1000); $.getScript('./js/jquery.carousel.min.js', function() { // Utilisation du carousel $("div.foo").carousel({ nextBtn: '<img src="./img/next.png" alt="next" />', prevBtn: '<img src="./img/previous.png" alt="next" />' }); }); }); }
Voici l'alternative en statique:
Merci d'avance, je bloque depuis pas mal de temps sur ce problème...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $(document).ready(function(){ $("#content").hide(); //on cache le contenu $("body").append('<div id="wait"><img src="../../img/loader.gif" alt="chargement..."/></div>'); }); // Utilisation du carousel $(window).load(function(){ $("#wait").hide(); $("#content").fadeIn(1500); $("div.foo").carousel({ dispItems: 2, nextBtn: '<img src="../../img/next.png" alt="next" />', prevBtn: '<img src="../../img/previous.png" alt="next" />' }); });
Partager