Tutoriel Vidéo jQuery : Carrousel javascript

Dans ce tutoriel vidéo vous apprendrez à réaliser un carrousel en javascript. Vous apprendrez donc, dans un premier temps, comment créer la structure du carrousel en HTML et CSS. Puis, dans un second temps, vous verrez comment utiliser javascript avec jQuery afin de créer et animer le carrousel...

Démonstration


Télécharger la vidéo
(Réservé aux premiums)

Télécharger les sources
(Réservé aux premiums)


Après avoir appris sur Internet quoi de plus normal que de partager à son tour ? Passionné par le web depuis un peu plus de 5 ans maintenant j'aime partager mes compétences et mes découvertes avec les personnes qui ont cette même passion pour le web : Vous.

Vous aimerez aussi

localStorage

localStorage
14m

Le localStorage vous permet de sauvegarder des informations directement...

Plupload

Plupload
1h6

Dans ce tutoriel vidéo vous découvrirez comment utiliser le plugin...

200 commentaires
Ajouter un commentaire

Olivier Il y a 1 mois Répondre

Merci pour ce merveilleux script

elbel Il y a 3 mois Répondre

Pour ma part, la première alert test fonctionne, mais pas la deuxième ( calcul des slides)

Une solution ?
Merci

dosfly Il y a 4 mois Répondre

Merci bcp pr la vidéo c tres bien expliqué est ce que quelqu'un peut m'envoyer les fichiers ds la vidéo(index.php, carrousel.css, carroussel.js et aussi la bib jquery.js)dans cet email dounia.oudrhiri@gmail.com Merci d'avance

Camille Il y a 3 mois - Répondre

Je voulais savoir si quelqu'un t'aurai fais passer les fichiers ( carrousel etc !) !

Nerds Il y a 5 mois Répondre

Je rejoins les autres avis en disant que c'est vraiment un super tuto,
Seul problème c'est que j'aimerai pouvoir afficher plusieurs slide en même temps mais avec une seule active à la fois et je ne vois pas comment faire.
Merci d'avance

Col1 Il y a 6 mois Répondre

Merci super tuto !!

Pour l'instant pas de soucis sauf un tit bug à causse d'un r en trop dans Currrent... 30min pour un ptit r =_= !!

Je me lancerai dans la suite demain

Vintz Il y a 6 mois Répondre

Dans le fichier carrousel.js le code que l'on a à 16:00 min dans la vidéo quand je le lance me donne elem is not defined. En même temps avec elem : null, j'ai envie de dire normal mais dans ce cas pourquoi ça marche chez vous et pas chez moi?

Tiiago Il y a 6 mois Répondre

Et bien moi au debut la premiere alert c'est bien déclenché mais en marquant 0 ( au lieu de 3) et quand je regarde dans la console j'ai cette erreur la:

Uncaught SyntaxError: Unexpected token ILLEGAL

une réponse? ^^

ifm Il y a 4 mois - Répondre

bonjour
peut-être une réponse tardive.
mais le pb doit venir d'une erreur php dans le script d'action du formulaire
regarde tes logs error apache et php

Nyah Il y a 6 mois Répondre

Bonjour,
j'aimerais modifier la pagination par des images
j'ai tenté d'insérer les images puis de rendre le texte non visible malheureusement aucun résultat fructueux.
Si quelqu'un pouvait me donner un coup de main

Shakuro Il y a 6 mois Répondre

Merci beaucoup pour ce tutoriel! Dommage que tu n'as pas continué avec les boutons PREV/NEXT que je souhaite faire. Mais bon top dans l'ensemble tout de même!

Kaigo Il y a 6 mois Répondre

Sincèrement je dis chapeau.

Je cherchait un carrousel déjà fait et je tombe sur ton tuto où c'est franchement bien expliqué, ça m'a même permis de combler une tare que j'ai vis à vis du cours que j'ai eu donc je ne peut que te remercier pour cet excellent travail, j’espère que tu va continuer cette excellente série de tuto car c'est du très bon boulot.

Un énorme merci à toi

lilly0705 Il y a 6 mois Répondre

Bonjour,

Merci pour ce tuto il est vraiment top !!

Le seul défaut que je lui trouve c'est qu'il ne fonctionnement sous ie ...

J'ai vu plus haut dans les commentaires qu'on s'était penché sur la question mais je n'ai pas vu si au final une solution avait été trouvé ???

étant novice en js j'avoue que je m'arrache les cheveux pour arriver à le faire fonctionner sous ie.
Donc si quelqu'un a trouvé la solution miracle je suis preneuse !!!!

kro1981 Il y a 6 mois Répondre

bonjour,
merci pour ce tuto. par contre je suis une grande débutante et j'essaye d'intégrer des liens sur les images/textes pour faire en sorte de tomber sur la page en question pour plus d'info.
j'ai mis le lien dans le fichier index :
<div id="slide1" class="slide">
<a href="http://www.nomdusite.com "> <div class="visu"> <img src="img/slide1.jpg" />
</div>
<div class="title">
Titre 1 - exemple
</div></a>

Lorsque je l'ouvre une première fois ça fonctionne, mais une fois que les slides passent et que ça repasse au 1er slide, plus de lien
Est-ce que quelqu'un à une méthode?
Merci d'avance!

davidwebb Il y a 8 mois Répondre

Bonjour, j'ai un petit soucis, j'utilise ce script qui va bien dans l'ensemble, mais quand il passe de la seconde à la 3e image, le script ne semble pas appeler le chiffre, en bas à droite. Il reste collé au no 2, puis hop 3 et 4 tout de suite. Je pensais que c'était parce que j'avais modifié le code, mais j'ai pris les fichiers originaux et je les ai placé ailleurs sur un autre serveur : même problème. Ça ne semble faire ce problème que sous Explorer, sur Windows (XP, Vista...). J'ai essayé sur 3 machines différentes, même problème.

merci de votre aide, j'aimerais beaucoup régler ce petit bogue

Ceux qui veulent tester http://www.replikcomm.com/carrousel/index.html

Dexyne Il y a 9 mois Répondre

Super tuto, toutefois il m'arrive un problème.

Le tout fonctionne plutôt bien (à part pour la dernière partie avec le titre qui descend puis remonte, moi il descend (donc disparaît) mais ne s'affiche plus (et je vois les autres titres en plus).
Mais le plus gros bug que j'ai - et ce sur Opera, FF et Chrome en dernière version - et qui au bout d'un moment fait passer les différentes images n'importe comment.
Au début tout va bien, si je clique sur les chiffres de la pagination aussi, mais arrive un moment ou tout s'emballe et les images (donc pages) s'affichent un peu dans n'importe quel sens et rapidement.
Avec le mouseover j'avais aussi le soucis qu'il s'arrêtait uniquement si je bougeais la souris sur l'image mais si je la laissais sans bouger la fonction qui est censé arrêter l'auto-slide ne fonctionne pas.

Du coup ça fait plusieurs petits soucis (hormis le gros au niveau de l'affichage) qui sont plutôt embêtant alors que le tuto est simple et efficace.
J'espère pouvoir régler mes soucis ce qui serait bien dommage le cas contraire.

Même si le tuto date beau boulot que de l'avoir fait.

Dex'.

Huviel Il y a 9 mois Répondre

Regarde du côté des key events de jquery

rbarth Il y a 9 mois Répondre

Hello, mon net étant trop lent je ne peux pas regarder à nouveau cette vidéo. Or il me semble que tu explique une solution dans le cas où on voudrait se servir de flèches "next" et "previous" pour naviguer entre les slides. Qui peut m'aiguiller please ?!

Merci d'avance

cricou Il y a 10 mois Répondre

Pourriez vous m'éclairer,
Je ne parviens pas à charger les fonctions javascript du carrousel.

voici mon script js :

/*
CARROUSEL
*/

var carrousel = {

init : function (){
alert ("test");
}

}

carrousel.init();


Quand je rafraichis ma page, je n'obtiens aucune alerte, pourquoi?

Merci d'avance

crazy-rideurs Il y a 1 an Répondre

salut, je voulais te remercier pour tes tutos exellents!

j'ai une petite question.
j'ai suivi ton tuto et j'ai égalmeent telechargé les sources que tu propose et il y à deux petits bugs, le premier est que lorsque l'on navigue avec les chiffres, si on va à la photo deux, le carrousel redémare à la première photo (au lieu d'enchainer vers la troisième), et le second bug est que si l'on click sur le premier chiffre, le carrousel ne redemarre pas.
Tu peu voir ça sur le site que je developpe actuelement : http://skillsforyou.fr
et tu remarquera que sur le premier carrousel, si l'on navigue avec les phrases, le problème n'existe pas, mais si l'on navigue avec les puces, si... je ne comprends pas.


et juste une petite info, j'ai suivi ton tuto pour personnalisé un formulaire pour demande de newsletter et au lieu de mettre du .js dans un onFocus et un onBlur pour afficher et cacher le texte, il suffit de mettre : placeholder="Tapez vote e-mail..." en lieu et place de value="Tapez vote e-mail..." ;
c'est ma petite contribution

crazy-rideurs Il y a 1 an - Répondre

en fait la réponse à ma demande est deux posts au dessus du mien... désolé

Boris Il y a 1 an Répondre

Bonjour,

Excellent tutoriel !

Je voulais savoir comment faire pour mettre en place les slide comme ceux-ci :

Le slide actif au milieu, le prochain slide visible à droite et a gauche au chargement de la page le dernier slide et au changement normal le slide précédent (un exemple type ici : http://demo.rockettheme.com/jan11/).

Une idée ?
Merci

frenetikm Il y a 1 an Répondre

bonjour,

ceci est un excellent tutoriel, extrêmement instructif, surtout en ce qui me concerne sur l'écriture objet en js.
Il réside néanmoins un bug, qui se situe au niveau des méthodes "next" et "prev". En effet lorsque l'on clique sur un élément, le système repart toujours sur le slide 1, voire même s'arrete lorsque l'on clique sur le 1.
Cela provient d'un problème de typage, en effet l'opération:
this.nbCurrent + 1
produit une chaine de caractère une fois que l'on a cliqué sur un élément.

Il faut donc caster la variable nbCurrent comme ceci:
var num = parseInt(this.nbCurrent) + 1;

ce qui résoud le problème.

a+

crazy-rideurs Il y a 1 an - Répondre

génial merci, tu résouds un problème que je n'arrivais pas à résoudre

Flo Il y a 1 an Répondre

Je comprends pas...
J'ai suivi le tuto a la lettre, 2 fois, je bosses sur NetBeans...
Pas moyen de le faire marcher... Apperemment il bloque sur le append() puisque je n'ai pas d'alert qui s'affiche apres...
Toutes mes images sont le cadre, avec la derniere en premier...
Il semblerai que personne n'ai de problemes et que tout fonctionne...
Quelqu'un aurait il eu le meme probleme, ou a une quelconque solution?
Merci

al37350 Il y a 1 an Répondre

bonjour,
j'ai un petit probleme ,pourquoi au deuxième passage du carrousel les lien ne sont plus cliquable ?
merci d'avance

Seth_soul Il y a 1 an Répondre

Bonjour,

Tout d'abords super tuto ! Je suis débutant en programmation Javascript et ce site m'est bien utile, merci.

Cependant j'ai un problème et j'ai passé une journée entière à tenter diverse solutions et recherches sur internet sans résultat. Je vous explique le problème :

J'ai modifier le script pour qu'il y ai un effet de roll-over avec animation sur la div (.title) qui contient le texte associés à l'image. Elle contient diverse information (nom, auteur, description, etc...) A l'état initial elle n'affiche qu'une partie limitée de la div (nom, auteur), et lorsque la souris passe dessus elle se déplace vers le haut pour afficher tout son contenu.

J'ai pour cela utilisé .hover() qui fonctionne plutôt bien à l'exception du fait qu'une fois passé à la div supérieure contenant l'image et le texte associé, l'effet n'est plus présent pour les div 'inférieures' cependant pour les div avec un 'numéro supérieur' l'effet est fonctionnel. Au final, lorsque toutes les div sont passées, l'effet n'est présent uniquement que sur la dernière div.

Pourriez vous m'indiquer une piste pour résoudre ce problème? D'avance merci.

Voici le code de mon fichier carrousel.js

// JavaScript Document

var carrousel = {

nbSlide : 0,
nbCurrent : 1,
elemCurrent : null,
elem : null,
timer : null,

init : function (elem){

this.nbSlide = elem.find(".slide").length;

// Créer la pagination
elem.append('<div class="nav_slide"></div>');
for(var i=1; i<=this.nbSlide;i++){
elem.find(".nav_slide").append('<span>'+i+'</span>');
}
elem.find(".nav_slide span").click(function(){carrousel.gotoSlide($(this).text());})
// alert(this.elem);

// Initialisation du Slide

this.elem = elem;
elem.find(".slide").hide();
elem.find(".slide:first").show();
this.elemCurrent = elem.find(".slide:first");
var titleHeight = this.elemCurrent.find(".title").height();
this.elemCurrent.find(" .title:first").css("bottom", -titleHeight+50);
this.elem.find(".nav_slide span:first").addClass("active");


// On crée le timer

carrousel.play();
// Stop quand on passe dessus
elem.mouseover(carrousel.stop);
elem.mouseout(carrousel.play);




},

gotoSlide : function(num){
if(num==this.nbCurrent) {return false;}
/* this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).fadeIn();*/

this.elemCurrent.find(".visu").fadeOut();
this.elem.find("#slide"+num).show();
this.elem.find("#slide"+num+" .visu").hide().fadeIn();
var titleHeight = this.elemCurrent.find(".title").height();
this.elemCurrent.find(" .title").animate({"bottom": -titleHeight-10},500);
this.elem.find("#slide"+num+" .title").css("bottom",-titleHeight-10).animate({"bottom": -221},500);
this.elem.find(".nav_slide span").removeClass("active");
this.elem.find(".nav_slide span:eq("+(num-1)+")").addClass("active");
this.nbCurrent = num;
this.elemCurrent = this.elem.find("#slide"+num);
},

next : function(){
var num = this.nbCurrent+1;
if(num>this.nbSlide){
num = 1;
}
this.gotoSlide(num);
},

prev : function(){
var num = this.nbCurrent-1;
if(num<1){
num = this.nbSlide;
}
this.gotoSlide(num);
},

stop : function(){
window.clearInterval(carrousel.timer);
carrousel.moreInfo();


},

play : function(){
window.clearInterval(carrousel.timer);
carrousel.timer = window.setInterval("carrousel.next()",5000);
},

moreInfo : function(){

/* $(" .title").mouseover( function(){carrousel.elemCurrent.find(" .title").css("bottom",-221).stop().animate({"bottom": 0},500)});
$(" .title").mouseout( function(){carrousel.elemCurrent.find(" .title").css("bottom",0).stop().animate({"bottom": -221},1000)});
*/
var num = this.nbCurrent;

this.elem.find("#slide"+num+" .title").hover(

function(){
$(this).stop();
$(this).animate({"bottom": 0},500);
},

function(){
$(this).stop();
$(this).animate({"bottom": -221},500);
}

);



}
}

$(function(){
carrousel.init($("#carrousel"));

});

loulou8407 Il y a 1 an Répondre

Bonjour,

j'ai un nouveau problème avec le carrousel. J'ai un menu juste au dessus avec des div qui s'ouvrent quand on passe la souris sur les liens du menu, mais les div apparaissent toutes derrière le carrousel.

J'ai essayé avec des z-index mais je sais pas si c'est la bonne piste car rien ne change.

D'avance merci

loulou8407 Il y a 1 an Répondre

Mais c'est bien sur !!!
c'est logique en plus !

Merci beaucoup mouz

loulou8407 Il y a 1 an Répondre

Bonjour,

personne pour m'aider pour mon problème de page blanche ?

Je pense que c'est un problème d'incrémentation mais je ne trouve pas

D'avance merci

mouz Il y a 1 an - Répondre

Loulou8407,

Ton problème vient de num = 0; dans la fonction next, num doit être égale à 1.

Voilà sinon super tuto !

jeanflo Il y a 1 an Répondre

Grafikart, encore Bravo pour le tuto
Petite adaptation à mon besoin :

Je n'utilise par la navigation automatique mais une navigation en dur :
<div class="navigation">
<span>1- Plein de promotions !</span>
<span>2- Faites réviser vos tondeuses</span>
<span>3- Ciseaux d'or 2011</span>
</div>

Du coup j'ai commenté ce code dans le fichier js :
// Créer la pagination
/* elem.append('<div class="navigation"></div>');
for(var i=1;i<=this.nbSlide;i++){
elem.find(".navigation").append("<span>Information n°"+i+"</span>");
}
*/

Puis j'ai ajouter .charAt(0)qui permet de récupérer le premier caractère de ma navigation :
elem.find(".navigation span").click(function(){ carrousel.gotoSlide($(this).text().charAt(0)); })

Voilà ma modeste contribution visible sur www.dogcat.com
JFB

loulou8407 Il y a 1 an Répondre

ENcore une fois bravo,
Grafikart tu es mon dieux !!!

Je suis m^me pas capable d'arriver à copier cet excellent travail !!!:-(

Tous marche très bien pour mes trois premières slides puis ensuite j'ai un blanc qui apparait. Qudan je fais un tes d'alert il s'affiche 0 à num.

J'ai beau regarder le code depuis des heures je vois pas le problème !!!
voici mon code , merci pour votre aide :

// JavaScript Document

var carrousel ={
nbSlide :0,
nbCurrent : 1,
elemCurrent : null,
elem : null,
timer : null,

init : function(elem){
this.nbSlide = elem.find(".slide").length;//compte le nbrs de slide

//Créer la pagination
elem.append('<div class="navigation"></div>');
for(var i=1;i<=this.nbSlide;i++){
elem.find(".navigation").append("<span>"+i+"</span>");
}
elem.find(".navigation span").click(function(){carrousel.gotoSlide($(this).text());})

//initialisation du carrousel
this.elem=elem;
elem.find(".slide").hide();//cacher les slides
elem.find(".slide:first").show();//Montrer les premier slide
this.elemCurrent = elem.find(".slide:first");//l'élément courant sera le premier slide
//this.elem.find(".navigation span:first").addClass("active");

//on cré le timer
carrousel.play();

//Stop quand on passe dessus
elem.mouseover(carrousel.stop);
elem.mouseout(carrousel.play);

},
gotoSlide : function(num){
//alert(num);
if(num==this.nbCurrent){return false;} //Enpèche l'animation si on clique sur le même slide

/*Animation 1 en fadeIn fadeOut
this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).fadeIn();*/


/*Animation 2 en slide de droite a gauche ou gauche a droite
var sens = 1;
if(num<this.nbCurrent){ sens = -1;}
var cssDeb = {"left" : sens*this.elem.width() };
var cssFin = {"left" : -sens*this.elem.width() };
this.elem.find("#slide"+num).show().css(cssDeb);
this.elem.find("#slide"+num).animate({"top":0,"left":0},500);
this.elemCurrent.animate(cssFin,500);
*/

/*Animation 3*/


/*this.elemCurrent.find(".visu").fadeOut();
this.elem.find("#slide"+num).show();
this.elem.find("#slide"+num+" .visu").hide().fadeIn();*/
this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).show();
this.elem.find("#slide"+num).hide().fadeIn();


var titleheight = this.elemCurrent.find(".title").height();

this.elemCurrent.find(".title").animate({"bottom": -titleheight},500);
this.elem.find("#slide"+num+" .title").css("bottom", -titleheight).animate({"bottom":0},500);

//this.elem.find(".navigation span").remouveClass("active");//Enlève le blanc sur les bouton
//this.elem.find(".navigation span:eq("+(num-1)+")").addClass("active");//active le blanc sur les boutons cliqués

this.nbCurrent = num;
this.elemCurrent = this.elem.find("#slide"+num);
},

next : function(){
var num =this.nbCurrent+1;
if(num>this.nbSlide){
num = 0;
}
this.gotoSlide(num);
},
prev : function(){
var num =this.nbCurrent-1;
if(num < 1){
num = this.nbSlide;
}
this.gotoSlide(num);
},
stop : function(){
window.clearInterval(carrousel.timer);
},
play : function(){
window.clearInterval(carrousel.timer);
//this.timer = window.setInterval("carrousel.next()",5000);
carrousel.timer = window.setInterval("carrousel.next()",5000); //remplacer le this par carrousel
}
}

$(function(){
carrousel.init($("#carrousel"));
});

xoliment Il y a 1 an Répondre

Salut !

Tout d'abords, un grand bravo pour ce magnifique tutoriel à Grafikart.

Malgré ce magnifique tuto. , j'ai un gros problême.

Tous marche sauf quand je clique sur 2, sa reste l'image 1, je clique sur 3 et sa reste l'image 1.

Merci d'avance ! A+

caporga Il y a 1 an Répondre

bonjour tout le monde et merci une énième fois pour tout ton travail qui est de qualité.

je suis bloqué sur un point, je m'explique : lorsque que je mouseover < elem.find(".navigation span").mouseover(function(){ carrousel.gotoSlide($(this).text()); }) > tout fonctionne bien cependant mon next < next : function(){
var num = this.nbCurrent+1;
if(num<=this.nbSlide)
{
num = this.nbCurrent+1;
}else { num = 1;}

this.gotoSlide(num);

}, >
me renvoie automatiquement sur le premier folio (qui sont au nombre de 4). je me casse la tête depuis hier, alors je me tourner vers le créateur pour en savoir plus...

merci encore

nestam Il y a 1 an Répondre

bonjour un tout petit peu d optimisation dans tous ca
Je pars dans le principe qu on a plusieurs images

on ouvre le dossier les contenant
et hope on le parcours //
le seul incovenient c est qu il faudra nommer les images par slide+numero(un tout petit peu de rigueur cela ne fait pas de mal ).
et on change tout le HTML PAR
/**************/
<?php
$dos= "img"; //Dossier des images
$dir = opendir($dos);
$num=1;
while( $file =readdir($dir)) { // Lecture dossier images

$autorise= array("jpg","png","gif");
$ext = substr(strtolower($file), -3);
if(in_array($ext,$autorise)){
echo '<div id="slide'.$num.'" class="slide">
<div class="visu">
<img src="img/slide'.$num.'.'.$ext.'"alt="Image'.$num.'"/>
</div>

<div class="title">
TITRE '.$num.'
</div>
</div>';
$num++;
//Pour ne prendre que les fichiers ont les extensions autorisees
//sinon num compte aussi les dossiers et et le fichiers thumbs.db
}

}
?>
/**************/
héé Grafikart un poil d amelioration sur le textarea sera la bienvenue
pour pouvoir mettre en valeur les bouts de codes
En tout cas merci pour tout ce que tu fais

dayshen Il y a 1 an Répondre

Super tuto, tous marche impec !

Par contre j'ai le même problème que "ink" et "Danieldeboca "
c'est à dire que lorsque mon carrousel reviens à l'image 1, tous mes title se superpose..
comme ils sont transparent je vois les autres en dessous et ça pose problème pour la lecture.. quelqu'un a t'il une idée la dessus ?

j'imagine que c'est très simple mais je suis vraiment nul en Js..

Merci d'avance !

dayshen Il y a 1 an - Répondre

okey j'ai trouvé la solution, pour ceux que sa intéresse il suffit d'enlever le ".visu" à la ligne suivante, en gros il faut remplacer :

this.elemCurrent.find(".visu .title").animate({"bottom": - titleHeight},500);

par :

this.elemCurrent.find(".title").animate({"bottom": - titleHeight},500);


Encore merci pour ton tuto grafikart c'est que du bonheur ton site !!

nevermind1220 Il y a 1 an Répondre

Bonjour

j'ai moi aussi un problème, la première image du carrousel s'affiche bien et passe en fade out, mais les images suivante ainsi que leur div titre ne s'affichent pas.
J'ai vérifier et revérifier 20 fois mon code s'ils vous plaît aidez moi a trouver mon erreur:

var carrousel = {

nbSlide : 0,
nbCurrent : 1,
elemCurent : null,
elem : null,

init : function(elem){
this.nbSlide = elem.find(".slide").length;


// crée la pagination
elem.append('<div class="navigation"></div>');
for(var i=1;i<=this.nbSlide;i++){
elem.find(".navigation").append("<span>"+i+"</span>");
}
elem.find(".navigation span").click(function(){carrousel.gotoSlide($(this).text());})

// initialisation du carrousel
this.elem=elem;
elem.find(".slide").hide();
elem.find(".slide:first").show();
this.elemCurrent = elem.find(".slide:first");
},

gotoSlide : function(num){
this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).fadeIn();
this.nbCurrent = num;
this.elemCurrent = this.elem.find("#slide"+num);
}
}
$(function(){
carrousel.init($("#carrousel"));
});

merci d'avance

gwadabeach Il y a 1 an Répondre

sous ie pourquoi
this.elem.find(".navigation span").removeClass("active");
this.elem.find(".navigation span:eq("+(num-1)+")").addClass("active");
ne marche pas?
en effet les span de navigation ne change pas et reste bloqué sur 1 sauf lorsque l'on passe la souris sur l'anim.

P1xHeLL Il y a 1 an Répondre

Bonjour à tous, j'ai un soucis en suivant à la lettre le tuto sur le carousel. Arrivé au moment ou je dois tester mes 3 slides, rien ne se passe, je n'ai pas la fameuse petite pop up java m'indiquant le nombre "3".

voici le .js concerné :


/*
CARROUSEL JS
*/

var carrousel = {

nbSlide : 0,
nbCurrent : 1,
elemCurrent : null,
elem : null,

init : function(elem){
this.nbSlide = elem.find(".slide").length;

}

}


$(function(){
carrousel.init($("#carrousel"));
alert(carrousel.nbSlide);
});





Merci d'avance à tous !

Kaharon Il y a 1 an Répondre

Bonjour, tout d'abord, je tiens à remercier Grafikart pour cet excellent tutoriel.

Sinon je cherche comment mettre une scroll-barre pour afficher un contenu plus important sans modifier le height.

Kaharon Il y a 1 an - Répondre

Comme sur ce site à la troisième news : http://www.siteduzero.com/

r9titi Il y a 1 an Répondre

Merci infiniment pour ce super tuto.
Cependant j'ai un petit soucis de pagination sous ie, chrome et safari.
Sur Firefox tout est nickel, mais sur les 3 autres navigateurs mes puces de pagination sont doublées (si j'ai 3 éléments à afficher, il va y avoir 6 puces).
Quelqu'un rencontre-t-il le même problème?

Shakuro Il y a 6 mois - Répondre

Hello,

J'avais le même soucis, il faut laisser le bout de code html comprenant les <span> dans des commentaires car ils sont appelés par le javascript.

boardingnow Il y a 1 an Répondre

Merci pour ce tuto plus qu'excellent

al37350 Il y a 1 an Répondre

très bon tuto.
Voila je voudrait rajouter les onglet suivant et précèdent a mon carrousel comment faire ?

Thermo Il y a 2 ans Répondre

désolé

Thermo Il y a 2 ans Répondre

Salut, j'adore ce tuto que j'ai trouvé juste après avoir galéré a faire presque la même chose en flash.. ^^
Je souhaiterais savoir comment ajouter les bouton suivant et précédent, j'ai rajouté ces deux lignes
elem.find("#prev").click(function(){carrousel.prev($(this).text());})
elem.find("#next").click(function(){carrousel.next($(this).text());})

mais lorsque je clique dessus ca va un peu dans n'importe quel sens, j'aimerais ne plus pouvoir cliquer sur precedent lorsque je suis sur la premier slide et ne plus pouvoir cliquer sur suivant lorsque je suis sur la dernière.

Merci de ces super tutos ...
et merci d'avance pour l'aide

Thaddeus Il y a 2 ans Répondre

Un petit probleme lors de la création de la page carrousel.js.
Quand je fais l'alert pour trouver le nombre de slide, il ne me repon pas "3" mais "indefined"...

Merci de l'aide si possible.

webdesignswiss Il y a 2 ans Répondre

stop : function(){
windows.clearInterval(carrousel.timer);
},
play : function(){
windows.clearInterval(carrousel.timer);
carrousel.timer = window.setInterval('carrousel.next()',5000);
},



Firebug:
windows is not defined
? in carrousel.js@75()carrousel.js (ligne 76)
? in jquery-1.4.3.js@2168(Object { name="event"})jquery-1.4.3.js (ligne 2209)
? in jquery-1.4.3.js@1840()jquery-1.4.3.js (ligne 1844)
error source line: [Break on this error] windows.clearInterval(carrousel.timer);


Pourriez-vous m'ader:

Je débute

Chrisx Il y a 2 ans Répondre

Bonjour,
Super tuto !

Cependant j'ai un petit problème je voulais mettre dans les titres en bas des photos des liens quand il fais son premier "tour" tout les liens marche mais, après quand il retourne a la première photo, les deux premiers liens des deux premières photo ne fonctionne plus :/

vous pouvez voir mon problème ici http://games-and-hi-tech.totalh.com/

Quelqu'un pourrais t-il m'aider ?

David Il y a 2 ans Répondre

Excellent tuto, évidemment. Gros soucis néanmoins lors de l'utilisation de fichiers flash. En effet, ils se lancent tous au chargement de la page et pas lorsque c'est "leur tour". Résultat à l'onglet 2 mes visiteurs ne voient pas d'animation mais juste l'écran blanc qui la suit. Avez-vous des modifications à me conseiller ?

Thymotep Il y a 2 ans Répondre

Bonsoir,

J'aimerai savoir comment sortir la pagination du carrousel, en effet je veux que celle ci soit au dessus de mon carrousel.

J'ai donc tenté de modifié cette ligne :
elem.append('<div class="nav_slide"></div>');

Par :
$("#pagination").append('<div class="nav_slide"></div>');

J'avais bien entendu créer un div avec l'id pagination avant mon div carrousel. Malheureusement çà ne marche pas. Surement parce que je suis hors de l'element carrousel.

J'ai tenté d'ajouter $(body). ou $(document). avant mon $("#pagination") mais rien ni fait, auriez vous une solution pour moi ?

(Si je mets un top négatif, on ne le voit pas à cause du overflow:hidden )

D'avance merci.

Thymotep Il y a 2 ans - Répondre

Problème résolu, il s'agissait de mettre $("#pagination"); a chaque fois que le code faisait référence à la pagination ...

Danieldeboca Il y a 2 ans Répondre

Personne pour m'aider?

sissinet Il y a 2 ans Répondre

pour apprendre

lionelmultimedias Il y a 2 ans Répondre

Il n'y a personne qui pourrais m'aider ?
Grafikart a dit :
"Tu modifie ton thème Wordpress pour générer le code HTML qui convient"
Oui mais ça fait plusieurs jours que j'essaie de trouver une solution mais je n'y arrive pas !
Merci

lionelmultimedias Il y a 2 ans Répondre

Bonjour Grafikart et à tous, super le tuto comme toujours, par contre j'aimerais intégrer dans mon site wordpress le carrousel dans ma section portfolio, exactement comme dans ta rubrique portfolio mais comment faire ? lorsqu'on crée un article avec plusieurs images pour la catégorie portfolio, comment modifier le thème pour faire comprendre à wordpress d'implémenter les images dans le carrousel et non ajouter les images les unes à la suite ?? Merci par avance pour ton aide

CTim0T Il y a 2 ans Répondre

j'ai suivi tout le tuto. en échange il est très bien expliquer. ! mai je rencontre un petit problème quand je tape le code pour montrer le 1er slide. et pas le dernier je rencontre toujours le dernier.

merci beaucoup pour votre aide. et toute vos compétence

ogivol Il y a 2 ans Répondre

salut a tous ! tres bon tuto mais comment insère t'on les liens sur les images pour qu'elles soient cliquables ?
merci d'avance et désolé du retard :P

sbones Il y a 2 ans Répondre

un tuto très util merci.

ivanova Il y a 2 ans Répondre

J'ai testé la version de cédric afin de mettre deux carrousel sur la même page cela ne fonctionne pas.

first-developer Il y a 2 ans Répondre

Tres bon tuto ça explique le nombre de commentaires .

ivanova Il y a 2 ans Répondre

Hello,
Génial le tuto. Bon j'ai deux ou trois petits soucis mais bon rien de serieux. Ma principal préoccupation est que je souhaiterai mettre deux carroussel sur la même page. Et le script fonctionne sur l'un mais pas sur l'autre.
Une idée de la mise en place à faire.

Valouxxx Il y a 2 ans Répondre

Salut et merci pour tes tuto!

J'me suis permis de transformer un peu ton fichier jscript pour que la navigation se fasse par des span "précèdent" et "suivant", mais surtout pour que cela fonctionne en boucle : arrivé au dernier slide ou image, si on fait suivant, hop ça revient au début!
Etant débutant, j'ai bien galéré plusieurs heures pour y arriver (bon, alors que ça n'a rien de sorcier)!
Voici le code, pour ceux que ça intéresse (attention, "slide" et "image" sont employé indifféremment)


var carrousel={

nbSlide: 0, /*recup nbre de slide*/
nbCurrent : 1, /* stock l'indice de l'elem en cours*/
elemCurrent : null, /* stock l'elem html qui est affiché*/
elem: null, /* dans quelle div je veux initialiser mon carrousel*/

init : function(elem){
this.nbSlide = elem.find(".image").length;

// creer la pagination
elem.append('<div class="navigation"></div>');/* on crée la div navigation*/
elem.find(".navigation").append('<span class="precedent"><--</span><span class="suivant">--></span>');/*on crée les span*/

//appel function suivant et precedent
elem.find(".suivant").click(function(){carrousel.gotoNextImage(carrousel.nbCurrent+1);});
elem.find(".precedent").click(function(){carrousel.gotoPreviousImage(carrousel.nbCurrent-1);});

//initialisation du carrousel
this.elem=elem;
elem.find(".image").hide();
elem.find(".image:first").show();
this.elemCurrent = elem.find(".image:first");
},

//Fonction de navigation
//suivant
gotoNextImage : function (num){
if(num<=this.nbSlide) // on vérifie que l'on ne soit pas à la fin des images
{
this.elemCurrent.fadeOut(); // quand on click, cache l'image en cours
this.elem.find("#image"+ num).fadeIn(); // on va ensuite chopper l'image en fonction de son indice
this.nbCurrent = num; // on met à jour l'indice de l'élement en cours
this.elemCurrent = this.elem.find("#image"+num); // on met à jour l'elem en cours
}
else // sinon on retourne à l'image 1
{
num=1;
this.elemCurrent.fadeOut();
this.elem.find("#image"+ num).fadeIn(); // on va ensuite chopper l'elem en fonction de son indice
this.nbCurrent = num; // on met à jour l'indice de l'élement en cours
this.elemCurrent = this.elem.find("#image"+num); // on met à jour l'elem en cours
}
},

//Precedent
gotoPreviousImage : function (num){
if(num<1) // si on veut aller, en dessous de 0, on retourne à la derniere image
{
num=this.nbSlide;
this.elemCurrent.fadeOut(); // quand on click, cache l'image en cours
this.elem.find("#image"+ num).fadeIn(); // on va ensuite chopper l'elem en fonction de son indice
this.nbCurrent = num; // on met à jour l'indice de l'élement en cours
this.elemCurrent = this.elem.find("#image"+num); // on met à jour l'elem en cours
}
else
{
this.elemCurrent.fadeOut();
this.elem.find("#image"+ num).fadeIn(); // on va ensuite chopper l'elem en fonction de son indice
this.nbCurrent = num; // on met à jour l'indice de l'élement en cours
this.elemCurrent = this.elem.find("#image"+num); // on met à jour l'elem en cours

}

},

}

$(function(){

carrousel.init($("#galerie"));/* on initialise donc l'elem dans galerie*/

});

Dao Il y a 2 ans Répondre

Je me demandé tous les jours depuis plusieurs mois dejas comment on fait ces genres de truc. Donc je ne peux que dire merci pour ce super tuto et mes respects.

newo Il y a 2 ans Répondre

Super tuto, merci. Pour ceux qui se demander comment se passer des chiffres dans la pagination, je suis parti de l'idée de grafikart dans les coms plus haut et voici ce que ça donne :

for(var i=1;i<=this.nbSlide;i++){
elem.find("nav").append("<span id='"+i+"'>.</span>");
}
elem.find("nav span").click(function(){ carrousel.gotoSlide(this.id); })

je n'ai rien ajouté, juste modifier l'existant, j'ai remplacé la div pagination par une balise nav (html5) et à la place du point dans la span, vous pouvez mettre ce que vous voulez.

Danieldeboca Il y a 2 ans Répondre

Merci le code marche bien mis à part une choses :

Je recherche actuellement le problème car les titres changent casi normalement si ce n'est que l'ancien titre reste en dessous de l'image... je ne sais pas si vous voyez...un peu comme si le titre précedent se retrouvait 30px plus bas et du coup il se superpose avec le titre précédent. Le titre courant lui se place bien avec la bonne animation.

Une petite idée sur la question?

Merci d'avance

Arya Il y a 2 ans Répondre

merci ......
il y a un problème, quand on clic sur "1", l'animation arrêt définitivement.

Arya Il y a 2 ans Répondre

bonjour,
déjà, Merci pour vos tutoriels, j'apprends beaucoup sur ce site.

Je comprend parfaitement vos cours mais je n'arrive pas a réaliser se que je veux. Je comprend pas aussi bien le cours sur le JS que les cours sur css ... .

Alors mon objectif est de réaliser un galerie similaire à celui la :
>> http://www.ora-ito.com/products/eva-pitement-central


Avec le scrolling minimaliste en bas des miniature, puis faire disparaitre/apparaitre les miniature avec le survole. (je sais pas si on me comprend)

Si je pouvais au moins le réoccuper puis le changer progressivement.
pensez vous pouvoirs m'aider a comprendre?

naflo Il y a 2 ans Répondre

Bonjour, j'aimerai savoir si l'on peut aussi ajouter du php pour un caroussel qui afficherait automatiquement l'image et un texte descriptif de la derniere news postée.

Merci encore pour ces superbes tutos !!

CopyRight Il y a 2 ans Répondre

Excusez un boulet comme moi j'avais pas lu tout les commentaires :S

CopyRight Il y a 2 ans Répondre

Bonjour, tout d'abord super tuto, mais j'ai un probleme.
En effet, j'ai voulut mettre des lien sur les image et les titre, au premier tour tout va bien mais une fois que je suis arrive a la derniere diapo les liens ne sont disponible que sur la derniere diapo.
Merci d'avance pour vos reponses !

souriskiclic Il y a 2 ans Répondre

Salut,


J'ai utilisé cet excellent tuto pour me faire un petit carrousel sur un des sites que j'ai développé.

C'est possible de le voir figurer parmis ceux qui ont utilisé ce tuto ?

Voici l'URL de mon site en question :www.pays-de-troncais.com

Merci d'avance,

Bruno.

nikosh Il y a 2 ans Répondre

Merci pour ce super tutoriel, ça m'a bien aidé

gizmodesbois Il y a 2 ans Répondre

J'ai un gros problème dans mon carrousel , quand je le fais démarrer , il marche mais quand je click sur le 2 pour faire le deuxieme slide , j'ai le fadein et fadeout qui se fait mais après tout ce fadeOut , le 1 devient 2 le 2 devient 3 , bref un beau petit bordel ^^

Voici le code JS:

var carrousel = {

nbSlide: 0,
nbCurrent: 1,
elemCurrent: null,
elem:null,

init : function(elem){
this.nbSlide = elem.find(".slide").length;

// Pagination
elem.append('<div class="navigation"></div>');
for(var i=1;i<=this.nbSlide;i++){
elem.find(".navigation").append("<span>"+i+"</span>");
}
elem.find(".navigation span").click(function(){carrousel.gotoSlide($(this).text());})

//Initialisation du carrousel
this.elem = elem;
elem.find(".slide").hide();
elem.find(".slide:first").show();
this.elemCurrent= elem.find(".slide:first");

},

gotoSlide : function(num){
this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).fadeIn();
this.nbCurrent = num;
this.elemCurrent = this.elem.find("#slide"+num);
}

}
$(function(){
carrousel.init($("#carrousel"));
});

Merci d'avance pour l'aide

gizmodesbois Il y a 2 ans - Répondre

J'ai corrigé l'erreur , tout fonctionne pour le mieux

Bonne journée et bonne continuation pour le site

ink Il y a 2 ans Répondre

Merci beaucoup pour ce super carrousel
je viens de l'intégrer sur un site et il fonctionne bien sauf une petite choses que je ne comprend pas. quand il revient au premier slide aprés avoir tous défiler, mon texte dans ma classe title ce superpose...du coup je vois tous les texte des class title...Quelqu'un aurai une idée de comment supprimer ça ?
merci beaucoup.

gaia Il y a 2 ans Répondre

coucou, j'ai un petit soucis,

Firebug m'affiche "this.gotoSlide is not a function"

alors la pagination ne fonctionne pas,

un coup de main serait le bienvenue svp

DisSsha Il y a 2 ans Répondre

résolu .. forcément le fichier n'était pas dans la directory locale

DisSsha Il y a 2 ans Répondre

Bonjour,

J'ai un curieux problème, si je met ton opaque.png dans mon ~/img/opaque.png il ne s'affiche pas. Mais si je met dans le CSS l'url de l'opaque.png de ta démo la il s'affiche !
En inspectant la page avec chrome il récupère bien mon opaque.png mais il fait 0px !

Jamel Il y a 2 ans

Bonjour l'ami , pour ton problème de l'image png je te propose de mettre un effet de transparence à l'aide de jquery , alors dans la partie INITIALISATION DU CARROUSEL tu rajoute ce ci : elem.find(".title").css({ opacity: 0.5 });

Jamel Il y a 2 ans

Bonjour a tous , je ne peux que joindre l'avis général et avouer que ce tuto et vraiment réussi.
sauf que y a un tout petit bug dans la partie navigation, qu'on ont clique sur un numéro tout va bien mais après ça continu pas a afficher les slides suivants par contre il reprend a chaque fois le button numéro 1

Jamel Il y a 2 ans

Bonjour a tous , je ne peux que joindre l'avis général et avouer que ce tuto et vraiment réussi.
sauf que y a un tout petit bug dans la partie navigation, qu'on ont clique sur un numéro tout va bien mais après ça continu pas a afficher les slides suivants par contre il reprend a chaque fois le button numéro 1

Jamel Il y a 2 ans - Répondre

Bonjour a tous , je ne peux que joindre l'avis général et avouer que ce tuto et vraiment réussi.
sauf que y a un tout petit bug dans la partie navigation, qu'on ont clique sur un numéro tout va bien mais après ça continu pas a afficher les slides suivants par contre il reprend a chaque fois le button numéro 1

tibotime Il y a 2 ans Répondre

Oups, j'avais pas vu que le sujet avait été abordé plus haut. Merci!!! A+

tibotime Il y a 2 ans Répondre

Super tuto! Cependant, j'ai un petit soucis. J'ai inséré des liens dans le carrousel, ils fonctionnent au premier chargement mais finissent par bloquer. Quelqu'un aurait une idée?

Boris Il y a 2 ans Répondre

Très bon tuto, mais j'ai un problème. AU bout d'un certain temps, les slide s'emballe et n'attend pas les 5 sec, il passe d'une vignette a une autre comme un dingue...

Une idée du souci ?
Merci

Badbart Il y a 2 ans - Répondre

Les plus haut dans les commentaires, ça a déjà été abordé 20fois

sky Il y a 2 ans Répondre

voilà les morceaux concernés

//initialisation du carrousel//
this.elem=elem;
elem.find(".slide").hide();
elem.find(".slide:first").show();
this.elemCurrent = elem.find(".slide:first");
this.elem.find(".navigation span:first").addclass("active");


/*animation en slide*/
var sens = 1;
if(num<this.nbcurrent){sens =-1;}
var cssdeb = {"left":sens*this.elem.width() };
var cssfin = {"left":-sens*this.elem.width() };
this.elem.find("slide"+num).show().css(cssdeb);

this.elem.find("slide"+num).animate({"top":0,"left":0},500);
this.elemcurrent.animate(css.fin,500);

MERCI

Pseudo Il y a 2 ans - Répondre

change addclass par addClass avec un C majuscule. et pour elemcurrent c'est la meme chose, probleme de majuscule c'est elemCurrent

sky Il y a 2 ans Répondre


g suivi le tuto de bout en bout mais
j'ai une erreur qui s'est glissé quelque part et là je séche, si quelqu'un peut m'apporter son aide , merci bien!

this.elem.find(".navigation span:first").addclass is not a function
[Break on this error] this.elem.find(".navigation span:first").addclass("active");
carrousel.js (ligne 26)
this.elemcurrent is undefined
[Break on this error] this.elemcurrent.animate(css.fin,500); (ligne50)

sky Il y a 2 ans Répondre

trouvé!!! Oups j'avais claqué un commentaire en plein à l'intérieur de mes accolades^^ d'où rupture de chaînes!!

Sky Il y a 2 ans Répondre

petit problème récurant !! j'ai un retour de firebug qui me renvoie l'erreur suivante

this.elemCurrent.fadeout is not a function
[Break on this error] this.elemCurrent.fadeout();

si quelqu'un connait la solution
merci

gaia Il y a 2 ans Répondre

c'est bon j'ai trouvé, j'avais mal écrit length !

Réponse trouvée sur weecast dans les commentaires sur le même tuto, comme quoi !

gaia Il y a 2 ans Répondre

"nestam (Mercredi 09 Décembre 2009 à 16:28):

Par contre moi j ai un soucis par rapport au nombre de slide
quand je mets une alert au moment c est défini dans l article firefox me met undefined.
va savoir "

J' ai exactement le même soucis, ça peut venir d'ou ? ça fait déjà un petit moment que je cherche, j' ai vérifier plusieurs fois le code...

scarymanu Il y a 2 ans Répondre

Bonjour,merci pour ce tuto bien utile.
J'ai un soucis pour rajouter les deux boutons précédent et suivant pour faire défiler le carrousel.

Voici le code HTML :

<div class="prev"></div>
<div class="next"></div>
<!--
<div class="navigation">
<span>1</span>
<span>2</span>
<span>3</span>
</div>
-->

Voici mes class CSS :
.prev{
position:absolute;
bottom:2px;
left:10px;
height:29px;
width:29px;
background:url(prev.gif) no-repeat;
z-index:1;
cursor:pointer;
}

.next{
position:absolute;
bottom:2px;
right:10px;
height:29px;
width:29px;
background:url(next.gif) no-repeat;
z-index:1;
cursor:pointer;
}

Voici mon code javascript qui est censé faire défiler le carrousel quand on click sur l'un des deux boutons:

elem.find(".prev").click(carrousel.prev);
elem.find(".next").click(carrousel.next);

elem.find(".navigation span").click(function(){ carrousel.gotoSlide($(this).text()); })

Voila j'aimerai savoir les erreurs que j'ai fait, afin que mon carrousel marche également avec ces deux boutons.

J'aimerai savoir également si il est possible que je place le bouton précédent de quelques px sur la gauche par rapport au 1er bouton navigation et le bouton suivant de quelque px sur la droite du dernier bouton navigation sachant que mes boutons de navigation ont été centré. Dois je utiliser le css ou le javascript pour faire cela?

Exemple : prev 1 2 3 4 next

Merci

first-developer Il y a 2 ans Répondre

Jsute pour savoir s'il est possible d'appliquer le script "carrousel" à plusieurs éléments du genre:

$(function() {
carrousel.init($("#carrousel"));
carrousel.init($("#carrousel2"));
carrousel.init($("#carrousel3"));
});

Car je l'ai fait avec un autre script que j'ai écrit mais ça ne marche pas.

mercilio

Burnog Il y a 2 ans Répondre

Oops :D

Je viens de trouver la soluce porposé par Grafikart qui a corrigé mon problème immédiatement :

Remplacer les this.timer par des carrousel.timer

Merci encore pour cet excellent tuto !

Burnog Il y a 2 ans Répondre

Bonjour,
Merci pour le tuto.

Je me trouve confronté à un (ou plusieurs) bug(s). déjà detectés par shin le vendredi 05 Mars 2010 à 21:26.

En effet dans la methode fadeIn et fadeOut, le stop fonctionne une fois. Puis lorsque on enlève la souris (mouseOut) le carrousel reprend de façon frénétique à une vitesse hallucinante et anarchique.

Voici mon code (qui doit être littérallement le même que dans le tuto hormis .navigation qui chez moi est .pagination) :

/*
Carrousel
*/
var carrousel = {

nbSlide : 0,
nbCurrent : 1,
elemCurrent : null,
elem : null,
timer : null,

init : function(elem) {
this.nbSlide = elem.find(".slide").length;

// Créer la pagination
elem.append('<div class="pagination"></div>');
for(var i=1;i<=this.nbSlide;i++){
elem.find(".pagination").append("<span>"+i+"</span>");
}
elem.find(".pagination span").click(function(){carrousel.gotoSlide($(this).text()); })

// Initialisation du carrousel
this.elem=elem;
elem.find(".slide").hide();
elem.find(".slide:first").show();
this.elemCurrent = elem.find(".slide:first");
this.elem.find(".pagination span:first").addClass("active");

// On cré le timer
carrousel.play();

// Stop quand on passe dessus
elem.mouseover(carrousel.stop);
elem.mouseout(carrousel.play);
},

gotoSlide : function(num){
if(num==this.nbCurrent){return false;}

/* Animation en Fade */
this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).fadeIn();
this.elem.find("#slide"+num).animate({"top" : 0, "left" : 0}, 500);
this.elemCurrent.animate(cssFin,500);*/

this.elem.find(".pagination span").removeClass("active");
this.elem.find(".pagination span:eq("+(num-1)+")").addClass("active");
this.nbCurrent = num;
this.elemCurrent = this.elem.find("#slide"+num);
},

next : function(){
var num = this.nbCurrent+1;
if(num >this.nbSlide){
num = 1;
}
this.gotoSlide(num);
},
prev : function(){
var num = this.nbCurrent-1;
if(num < 1){
num = this.nbSlide;
}
this.gotoSlide(num);
},
stop : function(){
window.clearInterval(carrousel.timer);
},
play : function(){
window.clearInterval(carrousel.timer);
this.timer = window.setInterval("carrousel.next()",5000);
}

}

$(function() {
carrousel.init($("#carrousel"));
});

__fabrice Il y a 2 ans Répondre

Salut,
Tres bon tuto. Juste pour éviter d'afficher la navigation si une seule photo :

// Créer la pagination
if (this.nbSlide >1) {
elem.append('<div class="navigation"></div>');

for(var i=1;i<=this.nbSlide;i++){
elem.find(".navigation").append("<span>"+i+"</span>");
}
}

Je suis en train de transformer ce code en plugin, toujours plus utile...

Fabrice

seb Il y a 2 ans Répondre

probléme régler dsl pour le poste jai trouver ma réponse dans les commentaire

je n'ai pas chargé jquery avant le lancement du script carrousel.js

encore dsl

seb Il y a 2 ans Répondre

bonjour, j'ai fait comme vous mais un problème persiste, mon fichier index.php prend en compte mon carrousel.css mais il ne prend pas en compte le fichier carrousel.js situer a la racine de mon site.

Dans le fichier index.php j'ai pourtant bien déclarer le javascript comme ceci <script type="text/javascript" src="carrousel.js"></script>

sur cette même page j'ai un code javascript pour la neige qui lui fonctionne super bien aider moi svp une semaine que je galère merci d'avance

Fir3d Il y a 2 ans Répondre

Hello !
En lisant tous les commentaires, j'ai trouvé la solution à ce probleme :

Le_viking (Lundi 01 Février 2010 à 19:46):

Pour ceux qui block encore sur le fait que le HTML est bloqué:
Golmote, du site du zero m'a aidé à corriger ce problème.
Solution:
modifier ça :

this.elemCurrent.find(" .visu").fadeOut();
this.elem.find("#slide"+num).show();
this.elem.find("#slide"+num+" .visu").hide().fadeIn();


par ça :

this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).show();
this.elem.find("#slide"+num).hide().fadeIn();

Voilou ca a marché pour moi :P

Fir3d Il y a 2 ans Répondre

Hello !
J'ai le meme probleme que toi Houly62 Une solution ?

Super tuto

Houly62 Il y a 2 ans Répondre

J'ai un bug :

J'ai mis des lien sur mes titres dans le carrousel, mais quand par exemple je suis au slide 3 et que je clique pour aller au slide 1 le lien n'est plus actif.

Comment régler ça svp ?

xav Il y a 2 ans Répondre

Pour le faire marcher en php (avec les images sur une bdd) tu fais comment ? Car du coup il trouve plus les slide2, slide3... uniquement le premier

Drayark Il y a 2 ans Répondre

Bonjour,

Je me suis rendu sur www.terrescreoles.com . Il fonctionne très bien de mon coté sous FF.

Erreur trouvé ?

gpisa Il y a 2 ans Répondre

Bonjour, J'ai réalisé le tuto et placé sur notre site www.terrescreoles.com. il fonctionne correctement sous ie mais pas sous ff. auriez vous une idée du pourquoi ?

seer Il y a 2 ans Répondre

Il faut des connaissance en PHP ou c'est réalisable en Jquery

seer Il y a 2 ans Répondre

Bonjour,

Peux-ton avec ce tuto ajouter une gestion dans le temps pour les images.
Imaginons 20 photos + legendes.
seulement 4 s'affichent en permanence dans le carrousel
les autres s'affichent en fonction d'une date bien précise, ex après le XX/XX/2010 elle n'apparaissent plus.

Badbart Il y a 2 ans - Répondre

Oui on peut !

Houly62 Il y a 2 ans Répondre

Après quelques test avec les réglage du carrousel et voulant créer un espace d'administration pour ajouter, supprimer et modifier du contenu dans le carrousel je suis arrivé au même résultat que toi Ondine.

Par contre moi je veux afficher 3 slides et j'en est 9 + 9

J'ai aussi remarqué un petit bug dans le carrousel (que je n'arrive pas à résoudre).
Quand je clique par exemple sur le slide 2 et que le carrousel repart il se repositionne sur le 1 au lieu de se mettre sur le slide 3.

Comment changer cela ?

MatteoBZ Il y a 9 mois - Répondre

Voir la réponse de Shin

Ondine Il y a 2 ans Répondre

J'ai un probleme au niveau de la navigation :/
Elle s'affiche en double, je ne comprends pas pourquoi, j'ai comparé chaque millimetre de mon code au votre, mais en vain. Quelqu'un pourrait m'aider ?
http://b0rdelique.free.fr/portfolio.php
http://b0rdelique.free.fr/slider.css
http://b0rdelique.free.fr/js/slider.js

Merci

Houly62 Il y a 2 ans Répondre

Après un avoir eu un bug dès que tous mes slides étaient vus une fois. Je me suis dit qu'il y avait peut-être des erreur de syntaxe.

Et c'était le cas j'avais oublié 2 point virgules (au bout des lignes) et un . avant visu sur cette ligne --> this.elemCurrent.find(".visu").fadeOut();

Maintenant tous marche impeccablement bien !
Un grand merci pour ton Tuto super bien expliqué, BRAVO !

T-ToO Il y a 2 ans Répondre

Merci pour ce super tuto

Mais je suis mauvais donc j'ai un problème, sur le premier slide, en fait le background de titre n'est plus transparent, enfin les 3/4 ne le sont pas. Je ne sais pas si c'est le site qui monte sur le slide ou s'il s'agit d'un un bug avec le transparent. (ou peut être moi qui suis pas fait pour ça :D)

j'ai uploader l'exemple pour voir si quelqu'un aurait une solution a mon soucis
-> http://lyoro.com/sites/tristan/jama/

merci :D

Badbart Il y a 2 ans

Heu , sans vouloir être méchant, tu aurais peut être pu remarquer que ça viens de la photo ... C'est le sol noir qui fait ça

T-ToO Il y a 2 ans - Répondre

Ha mais oui, MDR je suis trop trop bête :D

Merci beaucoup lol ^^ (je vais plus mettre de photo avec font noir) ^^

rafaelk94 Il y a 2 ans Répondre

Encore une fois super tutos !

J'aimerais savoir comment crée un pagination sans texte dans les span ? juste les petit point blanc j'ai essayer moi même mais je n'y arrive pas.

zazen Il y a 2 ans Répondre

Merci bcp pour ce tuto ;-)

pascalito Il y a 2 ans Répondre

Les carrousels et mootools sont partout; que nous reserve l'année 2012 ? un carrousel en real 3D

djbynight Il y a 2 ans Répondre

Hello , merci pour ce super tuto j'ai réalisé avec succès le carrousel.

2 petits problème me tracas:
1 j'aimerais mettre 7 carrousel sur une même page je n'y arrive pas pour l'instant j'ai copié 7x le code html et j'ai juste le premier carrousel qui est ok et pour les autres j'ai juste la dernière image en vue.
2 Peux-t-on changer les images du carrousel avec le tuto de portfolio en php que vous avez dans la liste des tuto comme ca les utilisateurs du site pourrais charger eux même leurs photos.
Merci d'avance pour les réponses.

shin Il y a 2 ans Répondre

Salut, J'ai effectué le tutoriel de bout en bout, et effectivement plusieurs problèmes se posent et surtout avec le hover censé couper le défilement. J'ai donc laissé cette partie de coté.
Un bug est plus préoccupant que les autres en réalité. C'est celui dont parle joska plus haut.
C'est à dire que lorsqu'on clique sur un numéro de slide, il se rend bien à cette diapo, mais le problème c'est que lorsque le timer reprend, il n'envoi plus vers la suivante, mais vers la diapo numéro 1.
Et si c'est préoccupant, c'est surtout parce que la démo que tu mets à disposition comporte elle aussi ce bug !! xD

J'ai retourné le problème dans tous les sens et impossible de trouver une solution puisque le nbCurrent se met bien à jour mais mystérieusement le goto(nbCurrent) qui suit renvoi invariablement vers la diapo numéro une ... C'est à n'y rien comprendre.

Si quelqu'un a une solution à proposer, je suis preneur !

Cya

Will Il y a 2 ans

Bonjour Shin

J'ai eu moi aussi le même problème. Ne connaissant pas grand chose en Javascript, mais connaissant bien PHP, je m'en suis servi pour trouvé l'erreur.

En fait le problème viendrait d'une erreur de typage de this.nbCurrent quand on clique sur la navigation.
Je m'explique: en laissant défiler le slide tout seul, quand celui-ci fait appelle à la fonction next(), on a var num = this.nbCurrent+1 qui fonctionne parfaitement; c'est-à-dire si on est sur le slide 2, num vaudra ensuite 2+1=3. Ce qui nous renverra au slide 3.
Sauf que l'on lorsqu'on clique nous-même sur la navigation; quand le slide appelle la fonction next() ensuite, c'est là que la ligne var num = this.nbCurrent+1 bug! c'est-à-dire si on est sur le slide 2 après avoir cliqué, num vaudra ensuite 2+1=21. On a concaténation des chiffres comme si c'était des chaines de caractères Ce qui nous renverra forcément au slide 1 vu que 21 dépasse le nbre de slides (condition dans next()).

Je me suis alors mis à chercher une fonction qui forcerait this.nbCurrent à être un nombre pour éviter la concaténation. C'est là que j'ai trouvé Number.

Donc au final tu remplace dans la fonction next():
var num = this.nbCurrent+1
par:
var num = Number(this.nbCurrent)+1

Je ne sais pas si littéralement c'est correct, vu que je ne suis que débutant en Javascript, mais en tout cas chez moi je n'ai plus le problème! J'espère avoir été claire sur l'explication

zvetlania Il y a 1 an

Super, merci tu as résolu mon problème

MatteoBZ Il y a 9 mois

Un grand merci à toi car j'avais aussi ce problème.

yann--- Il y a 9 mois - Répondre

suppa merci, je cherchais cela aussi !

Comme quoi cela vaut le coup de lire aussi tous les commentaires !

lynxtyler Il y a 2 ans Répondre

Bonjour ! Et merci pour ce super Tutoriel !

Cependant, j'ai un léger problème avec IE, alors que tous les autres navigateurs répondent correctement.

Le problème vient de la pagination. Au démarrage de l'animation, les slides défilent bien, mais la pagination reste bloquer à 1. Ce n'est qu'au passage du pointeur de la souris, que mon animation reprend.

Bref un peu dérangent comme bug (vive IE). Il y a t'il quelqu'un qui a rencontré le même problème que moi ? Et si oui peut 'il m'aider ?

Vocos Il y a 2 ans Répondre

Grafikart, t'es un génie !
Je l'ai utilisé pour ma galerie photo !

Kayle Il y a 2 ans Répondre

Chapeau !! merci encore pour tout c'est tuto super et gratuit j'espère que tout ton travail payera un jour tu le mérite vraiment merci encore et bonne continuation

balve Il y a 2 ans Répondre

Je constate cependant un autre problème, si on clique sur le numéro de la première slide alors qu'on avait passé cette vignette (en etant à ce moment sur la deuxieme slide par exemple), on reste bloqué sur cette slide n°1.

balve Il y a 2 ans Répondre

Pour info mon problème venait de là :
.navigation span:active
Qui decait plutot être :
.navigation span.active
:(

balve Il y a 2 ans Répondre

Y en a t'il d'autre que moi qui arrive à faire l'ensemble du tuto sauf les changements de class:active pour la coloration des numéros ???

Cedric Il y a 2 ans Répondre

(Désolé pour ce long post)
J'ai utilisé mon joker "coup de fil à un ami" et je suis maintenant en mesure de vouss proposer la version qui fonctionne avec plusieurs carrousels sur une page...

En gros : il faut en fait une "classe carousel" (fonction carousel en js) pour pouvoir instancier plusieurs carousels :
var car1 = new carrousel($("#votreID1"));
var car2 = new carrousel($("#votreID2"));
J'ai donc du réecrire l'objet carrousel pour le transformer en "class" javascript, puis j'ai modifié la tête du constructeur pour pouvoir faire varier la duree, enfin j'avais besoin d'une reference sur l'objet crée afin de l'incrementer (pour le play auto), ce qui donne :
var car1 = new carrousel("#votreID1", 'car1', 400);
var car2 = new carrousel("#votreID1", 'car2', 1200);

Notez enfin que dans le HTML, les <div class="slide" id="slideN"> sont à remplacer par des <div class="slide slideN">
--------------------------------------------------------
var carrousel = function(id, ref, duration){
this.nbSlide=0;
this.nbCurrent=1;
this.elemCurrent=null;
this.elem=null;
this.timer=null;
this.self=null;


this.init = function(id, ref, duration){
this.elem = $('#'+id);
if (this.elem != undefined){
this.self = this;
this.nbSlide=this.elem.find(".slide").size();
this.elem.append('<div class="navigation"></div>');
for(var i=1;i<=this.nbSlide;i++){
this.elem.find(".navigation").append("<span>"+i+"</span>");
}
this.elem.find(".navigation span").click(function(){this.gotoSlide($(this).text());});
this.elem.find(".slide").hide();
this.elem.find(".slide:first").show();
this.elemCurrent=this.elem.find(".slide:first");
this.elem.find(".navigation").css("opacity",0.6);
this.elem.find(".navigation span:first").addClass("active");
this.ref = ref;
this.duration = duration;
this.elem.mouseover(this.stop);
this.elem.mouseout(this.play(ref, duration));
}
};



this.gotoSlide = function(num){
if(num==this.nbCurrent){return false;}
this.elemCurrent.fadeOut();
this.elem.find(".slide"+num).show();
this.elem.find(".slide"+num).hide().fadeIn();
var titleHeight=this.elemCurrent.find(".title").height();
this.elemCurrent.find(".title").animate({"bottom":-titleHeight},500);
this.elem.find(".slide"+num+" .title").css("bottom",-titleHeight).animate({"bottom":0},500);
this.elem.find(".navigation span").removeClass("active");
this.elem.find(".navigation span:eq("+(num-1)+")").addClass("active");
this.nbCurrent=num;
this.elemCurrent=this.elem.find(".slide"+num);
return true;
};

this.next = function(){
var num=this.nbCurrent+1;
if(num>this.nbSlide){num=1;}
this.gotoSlide(num);
};

this.prev = function(){
var num=this.nbCurrent-1;
if(num<1){num=this.nbSlide;}
this.gotoSlide(num);
};
this.stop = function(){
window.clearInterval(this.timer);
};

this.play = function(obj, duration){
window.clearInterval(this.timer);
this.timer =window.setInterval('document.'+obj+'.next()',duration);
};

//Trigger init
this.init(id, ref, duration);
this.play(this.ref, this.duration);

};

$(document).ready(function(){
this.car1 = new carrousel("carousselHP1", 'car1', 2000);
this.car2 = new carrousel("carousselHP2", 'car2', 4000);

});

Cedric Il y a 2 ans Répondre

Personne pour me dire comment je dois m'y prendre pour afficher plusieurs carrousels sur une seule page?

zaaazaaza Il y a 2 ans Répondre

bonjour j'ai un problème, quand je clique sur un chiffre l'image ne s'affiche pas, sauf si je reclique sur le 1

Manu.11400 Il y a 2 ans Répondre

Merci bien, au debut il n'y etait pas, peut etre que mon payement etait pas encore pris en compte.

Baptiste Il y a 2 ans Répondre

A droite tu as un zip à charger... Mais il faut quand même faire le tutoriel, ça n'apporte rien de le charger tout fait...

Manu.11400 Il y a 2 ans Répondre

Me suis inscrits et pris un compte prenium, où es ce que je peu telecharger les ressources ?

Grafikart Il y a 2 ans - Répondre

A droite de la vidéo sous le logo CreativeCommons.

anthony Il y a 2 ans Répondre

Moi g firebug qui me di que "$ is not defined" à la fin du .js
Comment résoudre ce probléme svp ??

Badbart Il y a 2 ans - Répondre

Ce message peut arriver si on n'a pas chargé Jquery. Ou s'il est chargé trop tard

Jiyong Il y a 2 ans Répondre

Bonjour

Je me demander comment intégrer ce carrousel en utilisant wordpress, en remplaçant notamment les "ID" slides par des "ID post" (ce de wordpress) il y a une solution ?

merci

Plop Il y a 2 ans Répondre

Bonjour, je début en jQuery mais je dirais qu'en mettant un id différent sur chacun de tes carrousel et en les initialisant chacun à la suite ca devrait etre bon :

jQuery(function(){
carrousel.init(jQuery("#carrousel"));
carrousel.init(jQuery("#carrousel2"));
carrousel.init(jQuery("#carrouselx"));
});

Je pense que ca devrait se faire

Cedric Il y a 2 ans

Bonjour,

J'ai bien entendu essayé mais cela ne fonctionne pas.

C'est au moment du
carrousel.timer=window.setInterval("carrousel.next()",5000);
Le carrousel.next() pointe invariablement sur le dernier carrousel chargé (ce qui est logique après tout comme toutes les variables sont publiques)

Cedric Il y a 2 ans - Répondre

En fait pour aller un peu plus loin, afin d'éviter les conflits de div, j'ai remplacé les <div id="slideN" class="slide"> par des <div class="slide slideN">
Et dans la partie JS j'ai également remplacé les occurences de this.elem.find("#slide"+num) par this.elem.find(".slide"+num)

Pour un carrousel, tout marche toujours bien mais pas moyen de faire fonctionner 2 carrousels simultanément.

Dans mon exemple, je charge 2 carrousels : #carrousel1 et #carrousel2

Lorsque l'on suit la fonction JS pas à pas lors de l'exécution de , on s'aperçoit que c'est lors de la ligne carrousel.timer=window.setInterval("carrousel.next()",5000); (fontion play()) que carrousel.next() prend les valeurs de #carrousel1

J'aimaerais bien avoir vos retours d'expérience sur ce point.

Merci par avance à tous,

Cedric

Cedric Il y a 2 ans Répondre

Bonjour,

Avant tout merci pour ce tuto si clair.
J'ai un problème tout de même: j'essaie d'afficher plusieurs carrousels sur la même page et les variables sont systématiquement écrasées par le dernier des carrousels affichés (il n'y a donc qu'un carrousel qui tourne).

Quelqu'un a t-il la solution pour afficher avec ce script, plusieurs carrousels sur une seule page sans pour autant avoir à écrire un plugin JQuery?

Merci par avance à tous!

Chiper Il y a 2 ans Répondre

Bonjour, je souhaiterais remplacer les <span>1</span> etc... par une miniature d'une image définit dans chacun des slide ?

Le_viking Il y a 2 ans Répondre

De rien

Je trouvais ça embêtant de pas pouvoir mettre du HTML dans les slides

Le_viking Il y a 2 ans Répondre

Pour ceux qui block encore sur le fait que le HTML est bloqué:
Golmote, du site du zero m'a aidé à corriger ce problème.
Solution:
modifier ça :

this.elemCurrent.find(" .visu").fadeOut();
this.elem.find("#slide"+num).show();
this.elem.find("#slide"+num+" .visu").hide().fadeIn();


par ça :

this.elemCurrent.fadeOut();
this.elem.find("#slide"+num).show();
this.elem.find("#slide"+num).hide().fadeIn();

:)

Lien du topic :
http://www.siteduzero.com/forum-83-484846-p1-carrousel-jquery-html-bloque.html #r4618360

Pampa Il y a 2 ans - Répondre

Merci Le_viking ! Je ne trouvais pas de solution à ce probleme.

Jiyong Il y a 2 ans Répondre

Bonjour j'ai un petit truc qui marche pas trop, si je passe ma souris sur le slide, elle s'arrête deux seconde avant d'augmenté sa vitesse et de devenir complètement folle !

Pouvez vous m'aidez parce que je voie pas trop.

• demo : http://yazhouzhijia.free.fr/images/bug/slide/carrousel02.html
• fichier js :http://yazhouzhijia.free.fr/images/bug/slide/carrousel.js

merci a vous

Grafikart Il y a 2 ans

Remplace les this.timer par des carrousel.timer

Jiyong Il y a 2 ans - Répondre

Merci ça marche au poile

Pampa Il y a 2 ans Répondre

@Badbart: c'est pas si simple: Le lien je le créé sur la page php. Sauf que le lien est présent uniquement une fois. Lors de la première diffusion de la diapo. Je suppose qu'il faut mettre le lien dans le code js, mais comment ?

Kagogal Il y a 2 ans

Tu fais un seul lien sur le gros, et tu changes la valeur à chaque fois.

Pampa Il y a 2 ans - Répondre


c'est bien dans le fichier js que je dois le mettre c'est ca ?

peterthedrummer Il y a 2 ans Répondre

Merci beaucoup de ta réponse j'ai arranger sa ... je n'avais pas penssé qu' après la navigation serait inactive merci .

Sinon j'ai encore un autre problème ou plutot une remarque : C'est moi qui est loupé quelque chose dans le code ou quand on utilise la fonction slide ( pareil que sur "un cadeau" ) avec le timer quand on passe de 3 a 1 il glisse dans le mauvais sens ???

Autre question est il possible de mettre l'effet de va et viens du titre avec la fonction slide?

merci peterthedrummer

Kagogal Il y a 2 ans - Répondre

Tu peux oui, va faire un tour du côté des plugins qui permettent les animations pour faire ça.

Pampa Il y a 2 ans Répondre

comment mettre rendre les images qui défilent cliquable ?

merci d'avance.

pampa

Badbart Il y a 2 ans - Répondre

En créant un lien ?

peterthedrummer Il y a 2 ans Répondre

Bonjour et tout d'abord un énorme merci à toi ...
Tes tutos sont très détaillés et claire .

Mais étant un noob dans la programation j'ai un petit problème :

j'ai donc fait le tuto du carrousel et je n'est aucun problème sur ce point, j'ai la meme page html et css que toi (pour le moment) et j'ai un background )à mettre par dessus avec une transparence au niveau du carrousel pour qu'on le voit :p
Comment faire pour le mettre par dessus ? le carrousel étant en position absolute je n'arrive pas à le mettre en dessous :s

merci d'avance

peterthedrummer

Grafikart Il y a 2 ans - Répondre

Il faut utiliser le z-index pour mettre ton image au dessus. Sinon le fait de mettre une image au dessus de carrousel rendra la totalité de la navigation inactive, il sera alors impossible de clique sur un élément du carrousel.

Pampa Il y a 2 ans Répondre

Desolé pour le double post mais il y a quelque chose de prévu si js est désactivé ?
En tout cas je suis fan de ton travail. Merci pour tout ce que tu fais GK.

Pampa Il y a 2 ans Répondre

Coucou,
j'ai une petite question. En faite j'ai essayé de mettre un lien quand on clic sur un slide. Je l'ai fais via le php. Ca fonctionne mais une seul fois. Après un tour complet les lien ne fonctionne plus.
Je suppose qu'il faudrait les ajouter au js. Mais comment faire ?

chelidoine Il y a 2 ans Répondre

Bonjour
Questions bêtes.
Je viens de m'inscrire en tant que membre, notamment pour pouvoir downloader les sources concernés par le tutoriel Carrousel.
Pas de lien de téléchargement. Dois-je pour cela être membre premium ?
L'abonnement membre premium est-il à reconduction automatique ?
Merci.

Grafikart Il y a 2 ans - Répondre

Il faut effectivement être premium pour avoir accès aux sources. l'abonnement n'est pas reconduit de manière automatique.

Manuuuuu Il y a 2 ans Répondre

Bonjour et merci pour ce tuto qui va m'être utile. Mais avant je souhaiterais poser une petite question. Est ce que avec ce tuto il est possible de faire une sorte de diaporama pour afficher les derniers articles comme on le voit sur de nombreux site comme 01net par exemple. Merci pour les réponses que vous m'apporterez.

Grafikart Il y a 2 ans

Oui tu peux tout à fait faire ce que tu demande, à toi de générer le code pour afficher les derniers articles.

Manuuuuu Il y a 2 ans - Répondre

Ok merci beaucoup, je vais regarder ça de pus prêt. Super site.

Tom Il y a 2 ans Répondre

Re-bonjour, Quelqu'un pourrait me conseiller par rapport à mon problème svp ? (cf juste au dessus)
Le HTML se désactive après le premier passage (testé avec Firefox, Chrome et IE).

Merci

kittypaw Il y a 2 ans Répondre

Bonjour,

Tout d'abord merci pour ce tutoriel qui m'a beaucoup aidé!

Cependant, tout comme MiisterTii, celui-ci ne marche pas sous IE(les slides ne défilent pas toutes seules et le fait de cliquer sur les numéro n'a aucun effet)!

Je n'arrive pas à savoir pourquoi car sous tous les autres navigateurs cela fonctionne parfaitement! De plus, Firebug ne m'affiche aucune erreur.

Merci

MiisterTii Il y a 2 ans Répondre

Bonjour,

Je me de vous écrire car j'ai suivi votre tutoriel et je voudrais vous remercier car il est super instructif et marche super bien.

Cependant j'ai un petit soucis avec le code... Le script marche bien sur tous les navigateurs à l'exception de IE7... n'étant pas très calé en javascript, je ne sais pas par où commencer pour trouver une solution à ce problème.
Serait-il possible de me mettre sur la voie s'il vous plait.

Merci d'avance,

Grafikart Il y a 2 ans

Je teste le script dans le week end et j'upload une version qui fonctionne sur IE7

Badbart Il y a 2 ans

Les sources actuelles en download fonctionne bien sur IE 6 - 7 chez moi

MiisterTii Il y a 2 ans - Répondre

@Grafikart : Merci beaucoup ! J'attends avec impatience la version de ce script pour IE7

@Badbart : Bizarre chez moi ça ne marche vraiment pas sur IE7.
J'ai également été faire un tour sur www.uncadeau.com vec IE7 et pareil le slide de la home ne marche pas...

dixi Il y a 2 ans Répondre

Bonsoir,

Tout d'abord merci pour ce super tuto.
J'aurais aimé utiliser ce carrousel comme menu, mais le soucis c'est que dès que la page se recharge il revient à ça position initiale, ce qui est normal. Mon problème est donc le suivant: Comment faire pour que quand je clique sur n'importe quel image de mon menu carrousel, au rechargement de la page il reste dans la position ou l'image est visible? Sachant aussi que je peut avoir un lien sur une page qui mène vers une autre, ce qui complique encore plus la chose.
Merci d'avance pour votre aide

Tom Il y a 2 ans Répondre

J'ai re-testé en utilisant les fichiers (css et js) utilisés sur la démonstration de Grafikart, dont le html fonctionne parfaitement, mais le problème persiste sur mon site.

J'en conclue que ça ne peut venir que de ma librairie jquery, j'ai pourtant téléchargé la dernière version.

Ou alors un conflit avec autre chose sur mes pages ?

Tom Il y a 2 ans Répondre

Bonjour,

J'ai moi aussi le problème du HTML qui se bloque suite à partir du deuxième défilement. J'ai vu que plusieurs personnes ont rencontré ce problème, et qu'il fallait changer "this.timer" par "carrousel.timer" pour le corriger, mais je n'ai pas de "this.timer" dans mon JS.

Du coup je ne sais pas que faire.
Pouvez vous jeter un oeil à mon carrousel svp pour me mettre sur la voie, je n'arrive pas à localiser le problème.

le carrousel : http://www.montpellierinteractif.com/
le JS : http://www.montpellierinteractif.com/carrousel/carrousel.js


Merci

fab1105 Il y a 2 ans Répondre

Super tuto, mais comment fais tu pour faire pivoter les images sur le carrousel de grafikart? Tu peux faire ça avec jquery ou tu utilises un logiciel d'animation?
Merci.

Grafikart Il y a 2 ans - Répondre

Le carrousel est fait avec flash. Avec jQuery on ne peut faire que des translation au niveau des mouvements donc c'est impossible d'arriver à ce résultat.

khandary Il y a 2 ans Répondre

Merci, ce tuto est bien mais moi aussi j'ai le contenu HTML qui bloque apres passage du slide sous firefox ou autres. Par contre sur IE 8, ça passe nikel.

quelqu'un a une solution ?

ilyesn Il y a 2 ans Répondre


Merci pour le tuto bien expliqué comme d'habitude, dommage que le contenu HTML est bloqué (lien, texte) après être déjà passé sur le slide.

idioteque Il y a 2 ans Répondre

Bonjour,
Tout d'abord merci beaucoup pour ce tuto vraiment très bien fait et très utile.
Cependant je rencontre un bug de l'anime qui survient quand on change de slide.
Si quelqu'un a déjà rencontré ce problème merci de bien vouloir m'aider
A voir ici : http://www.team-bluemotion.eu
Merci d'avance

quent1du58 Il y a 2 ans

Bizarre en effet o_0.
Cela viens de votre fichier javascript. Il manque sûrement une petite partie.

Badbart Il y a 2 ans - Répondre

Solution déjà donner.
A la ligne 79 de ton Js, change :

this.timer

en

carrousel.timer

jbie Il y a 2 ans Répondre

Bonjour tout d'abord un grand merci pour ton travail, ensuite j'ai une petite question, je n'arrive pas à remplacer les chiffres par des points comme sur grafikart.fr/portfolio.
Est-ce que quelqu'un pourrait m'aider ?

Nicolas Il y a 2 ans Répondre

Merci à toi pour ce magnifique tutoriel vidéo, il faut bien dire même si on y pense pas toujours, mais avoir un esprit et une aisance ludique n'est donné à tout le monde.
Bonne continuation pour la suite.

ilyesn Il y a 2 ans - Répondre

C'est quoi le lien que tu nous met Nicolas, il faudrait modéré ce lien Merci.

Elo10 Il y a 2 ans Répondre

Merci beaucoup pour ce tutoriel!

J'ai un petit soucis, le script fonctionne correctement sous Firefox mais pas sur IE. Les images défilent bien le premier tour, mais le tour suivant, la dernière image reste bloquée.
Est-ce que quelqu'un a déjà eu ce problème?

Elo10 Il y a 2 ans - Répondre

J'ai trouvé ce qui n'allait pas!
J'avais mal fermé ma balise pour les images -_-

Encore bravo pour ce tutoriel et le site!

basketteur-33 Il y a 2 ans Répondre

goooood

Maxime-28 Il y a 2 ans - Répondre

yes

Zellow Il y a 2 ans Répondre

Bonjour,

Je voulais savoir , le logiciel que t'utillise , pour le traitement de texte , html/css ect

Merci d'avance

Ps : J'adore tes tutos !

Grafikart Il y a 2 ans - Répondre

J'utilise Komodo Edit, tu pourras trouver des vidéos sur cet éditeur sur cet article http://grafikart.fr/blog/dossier-editeurs-codes-470

nestam Il y a 2 ans Répondre

Par contre moi j ai un soucis par rapport au nombre de slide
quand je mets une alert au moment c est defini dans l article firefox me met undefined.
va savoir

bast_65 Il y a 2 ans Répondre

je pense que les id slide+num sont en fait en double,a mon avis c'est sa qu'il n'aime pas même si il est sensé cibler par rapport a l' id parent carrousel. Comment on peut arranger sa ?

bast_65 Il y a 2 ans Répondre

Bonjour,
j'essai de réutiliser le carroussel, il doit y en avoir 2 sur la page, ce système d'instence est donc tout indiquer, seulement problème:
il trouve bel et bien le bon de slide pour chaque carrousel,mais la paginationet le timer marche que pour le dernier.Je pense qu'il ya conflit entre 2 surtout quelorsque je clique sur la pagination du premier carrousel, il me le fait sur le second.Ou est l'erreur ?
merci d'avance

Riri Il y a 2 ans Répondre

Vraiment génial, merci merci merci !!

Ravi Il y a 2 ans Répondre

merci beaucoup ^^

Galithiel Il y a 2 ans Répondre

Mouarf, on peut pas éditer les commentaires

Enfin bref, en fait le script marche, mais avec une page de décalage vers la gauche, ainsi le bouton "C" affichera la page "B", le "D" la page "C", etc...

Je n'arrive malheureusement pas à régler ce problème
Merci d'avance

Galithiel Il y a 2 ans Répondre

Re,

Tout d'abord, merci de ta réponse, j'ai essayé de recoder le systeme pour en arriver à ça :
http://www.simplecommunity.fr/divers/js/js_2.txt

Mais lorsque je clique sur un des boutons de la pagination, le script ne fait rien du tout.
Je pense donc que c'est "carrousel.gotoSlide(this.id);" que je dois remplacer par autre chose, cependant, je ne vois pas vraiment quoi

Merci d'avance

Galithiel Il y a 2 ans Répondre

Hello,

Tout d'abord merci pour ce tutoriel de qualité (comme tous les autres d'ailleurs...)

Cependant, j'essaie actuellement d'adapter ce script à, non pas des chiffres, mais des lettres.
J'ai donc modifier le code JavaScript qui crée la pagination pour obtenir ça :
http://www.simplecommunity.fr/divers/js/js.txt

La création de la pagination marche bien, cependant le changement de slide ne marche pas, en effet, au chargement, il m'affiche bien le slide de la lettre A puis quand je re clique sur "A" ou une autre lettre, il m'affiche un slide vide, sans titre, avec aucune lettre sélectionnée

Voila le code de ma page HTML (les slides sont générés via PHP) :
http://www.simplecommunity.fr/divers/js/html.txt

Voila mon code JavaScript complet (Je n'utilise pas le timer) :
http://www.simplecommunity.fr/divers/js/js_full.txt

J'aimerais donc savoir quoi adapter dans le script JavaScript pour qu'il comprenne qu'il doit rechercher des lettres dans les noms des slides et pas des chiffres

Merci d'avance !

Grafikart Il y a 2 ans - Répondre

Il faut repenser le système qui sauvegarde les numéro de slide et qui les récupère.
Par exemple sur les span de la pagination mettre un id genre slide1, slide2...
Puis lors d'un clic récupérer l'id et supprimer le "slide" avec un replace pour avoir le numéro.

joska Il y a 2 ans Répondre

Salut
J'ai reussi à mettre en place le carrousel merci pour le tuto.
Cela dit j'ai le même probleme avec les slides qui s'affolent quand on clique sur les bouttons.
J'ai vu que tu parlais d'utiliser un setTimeout mais malgrès mes recherches je n'ai pas trouvé comment faire.
Si jamais quelqu'un a trouvé j'aimerais bien avoir la solution. Merci

Sayber Il y a 2 ans

Comme l'a dit Badbart plus haut change this.timer en carrousel.timer à la ligne 82

joska Il y a 2 ans

Merci beaucoup je n'avais même pas vu dsl. J'ai encore un autre soucis. Quand je clique sur un bouton pour passer directement au slide 4 par exemple quand le carrousel redemerre il recommence du slide 1.
J ai utilisé consol..log(num) dans la fonction next() et apparement il me retroune 41 si j ai cliqué sur 4. 51 sur 5 etc...
J'ai beau me creuser la tete je ne trouve pas le pb

Pseudo Il y a 2 ans - Répondre

tu as un probleme, il concatene au lieu de additionner, il faut parser ta variable ayant un chiffre que tu veux changer.

Sayber Il y a 2 ans Répondre

Super tuto merci !
Une question, si l'on met une vingtaine de photos dans le slide, et qu'on désire ne pas voir tout les boutons de sélection mais seulement une dizaine max type :

"prev 1 2 3 4 5 6 7 8 9 ...20 next"

comment met-on ceci en place ?

Sayber Il y a 2 ans

Personne n'a une idée pour limiter l'affichage des numéros ?

Grafikart Il y a 2 ans

A toi de développer le système

Sayber Il y a 2 ans

loin de moi cette prétention ! j'en suis bien incapable ! c'est dommage car c'est peut-être la seule "option" qui manque à ce superbe carroussel. C'est si dur que ca à mettre en place ?

bast_65 Il y a 2 ans - Répondre

je ne vois l'intérêt de mettre beaucoup d'image dans ce genre slide, n'étant pas la seul chose que tu vas mettre dans ta page et que c'est un carrousel et pas un diaporama photo, tu risque de faire ralentir l'affichage de ta page (surtout si c'est pour mettre sur la page d'accueil) pour finalement pas grand chose: tes visiteur ne vont pas les voir toute, autant qu'il aille sur la page qui les montre toutes.

Krusty Il y a 2 ans Répondre

tiens je voudrais savoir ! comment arreter le defilement automatique du caroussel

Badbart Il y a 2 ans - Répondre

bah tu le vire dans le JS ...
En gros tu del ligne 32-36 et 88-94

Tiim-Zero1 Il y a 2 ans Répondre

Bonjour,

J'ai réalisé se petit tuto et j'ai gardé la dernière animation, quand je laisse défilé tout va bien mais dès que je clique sur un chiffre tout s'emballe xD ...

Lien du slide --> http://tiim-zero1-production.lescigales.org/CARROUSEL/

Cordialement

Remus Il y a 2 ans

Bonjour,

Tu peut essayer de faire comme me la conseillé LimeCitru (plus haut), c'est à dire désactiver l'arrêt sous Hover.

Badbart Il y a 2 ans

a ta ligne 82 de ton Js, change :

this.timer

en

carrousel.timer

Tiim-Zero1 Il y a 2 ans - Répondre

Merci sa marche nikel :D:D

ael Il y a 2 ans Répondre

salut,
j'ai le même soucis des slides-folles apres un passage de souris au dessus. apparemment le script déconne a la relance du timer. si quelqu'un a résolu ce problème...

Grafikart Il y a 2 ans

En effet, parfois pour une raison assez mystérieuse il relance plusieurs timer simultané qui engendre un super clignotement.

La solution est de changer un peu le système, on n'utilise plus un setInterval mais un setTimeout qui va être relancé lorsque l'on passe à une autre image.

Ceci permet d'éviter la possibilité d'avoir plusieur timer simultanément.

Blutack Il y a 2 ans

J'ai de mettre un Timeout, mais le problème est le même quand on enlève le pointeur du carroussel, la machine s'emballe. C'est comme si la fonction de window.clearTimeout ou .clearInterval ne faisait pas son boulot plus d'une fois. Byzarre.

Badbart Il y a 2 ans - Répondre

La solution a été donner plusieurs fois plus bas dans les commentaires.

Pro-Designer Il y a 2 ans Répondre

Salut .
dommage il veut pas marché avec moi , je ne sais pas pourquoi !!.

Thomas Il y a 2 ans Répondre

Super tuto,
j'aimerais inversé la numerotation des span au lieu d'afficher 1,2,3 ... afficher dans l'ordre décroissant en premier le dernier ..,3,2,1
Apres plusieurs essais je n'y arrive pas avez vous une piste à me donner

Pobourger Il y a 2 ans Répondre

Alors pour ma part je tien a te remercier car tout marche très bien Ted très bon tuto comme DAB !! Ps: un tutoriel sur la personification des tableaux et des champ de commentaire s'être la bien venu

Remus Il y a 2 ans Répondre

je ne sais pas si certain ont le même problème que moi, mais sous Firefox le carrousel devient fou après quelques slides. Il slide super vite entre toutes les images, pareil pour le texte.

J'ai bien dernière version du renard (testé sous windows et Leopard et même problème).

Cela pourrait il que ça provenienne de monde code en sachant que je n'ai aucun probleme sous IE, Safari et Chrome.

LimeCitrus Il y a 2 ans

ouais moi aussi il devient fou après quelques slides, les images disparaissent, les titles aussi... je me suis contenté du code sans l'arrêt en hover... et là ca marche.

Remus Il y a 2 ans - Répondre

Je vient d'essayer ta méthode ça fonctionne impeccable, merci du tuyau

joska Il y a 2 ans Répondre

Encore une fois super tuto.
Si je peux me permettre j'ai trouvé un autre tuto dans le même genre qui explique comment faire un carroussel infini.
Ca pourrait en interesser certain alors je laisse le lien ici
http://jqueryfordesigners.com/jquery-infinite-carousel/
Merci encore

LimeCitrus Il y a 2 ans Répondre

Effectivement c'est le problème, merci pour ta réponse, mais peux tu m'aiguiller par rapport à Reload to activate window console qui apparait dès l'ouverture de wamp? merci

Badbart Il y a 2 ans - Répondre

"Reload to activate window console" c'est juste pck tu n'as pas recharger ta page après avoir activer firebug.
La console sera active une fois que tu auras fait F5, le message est quand même assez explicite...

LimeCitrus Il y a 2 ans Répondre

Je ne sais pas si quelqu'un a réussi le tuto mais pour ma part j'ai un problème au début du fichier carrousel.js.
Firebug me dit ceci: $ is not defined.
Jusque là j'ai pareil que dans le tuto niveau code... Que faire??
Que faut-il faire quand on a "Reload to activate window console" dans firebug, qu'est-ce que ca signifie?
merci pour les explications.

Grafikart Il y a 2 ans - Répondre

Vu ton souci je dirais que tu n'a pas chargé jquery avant le lancement du script carrousel.js

Djpaulo Il y a 2 ans Répondre

Moi il me manquer un point virgule (;) a la fin de cette ligne :

carrousel.timer=window.setInterval("carrousel.next()",4000);

WoaWorld Il y a 2 ans Répondre

Merci

Nouipoz Il y a 2 ans Répondre

Génial ce Tutoriel comme d'hab :D , merci

Djpaulo Il y a 2 ans Répondre

Probleme résolu merci pour ce super tuto très utile

LimeCitrus Il y a 2 ans - Répondre

Comment tu as résolu ton problème? Merci pour ta réponse.

DjPaulo Il y a 2 ans Répondre

BOnsoir, moi j'ai le carrousel qui ce tape un délire est pas automatiquement d'une image a l'autre en 1 dicième de seconde apres avoir enlever la sourie du slide si je la met pas pas de probleme mais si je la met ....

LimeCitrus Il y a 2 ans - Répondre

Ok, merci pour ta réponse.

OverSpeed Il y a 2 ans Répondre

Très bon tuto comme d'habitude

syn Il y a 2 ans Répondre

Merci pour ce tuto

LimeCitrus Il y a 2 ans Répondre

Encore une fois tu cartonnes!!!! thanks a lot.

valentin45000 Il y a 2 ans Répondre

trouvé ^^
<img style="border: 0px solid" src="img/slide1.jpg"/>

Baptiste Il y a 2 ans

ou tout simplement dans le css:
img a{
border: none;
}

ça doit marcher aussi! c'est juste plus simple.

valentin45000 Il y a 2 ans - Répondre

A oui voilà, je me diser bien que l'ont pouvez avec le css. Merci bien ^^

valentin45000 Il y a 2 ans Répondre

Bonjour j'ai mis un lien sur les images mais quand on clique dessus il nous affiche une légère bordure violette :
http://nsa10.casimages.com/img/2009/11/24/091124122821527213.jpg

Comment la supprimmer ?

paskalin Il y a 2 ans Répondre

excellent merci grafikart!
pour l'integrer à wordpress comment faire?
merci

Grafikart Il y a 2 ans - Répondre

Tu modifie ton thème Wordpress pour générer le code HTML qui convient

KaKuZa` Il y a 2 ans Répondre

Ayé ! J'suis amoureux du Carrousel <3333

tontonrimka Il y a 2 ans Répondre

Tuto Monstrueux

h7u84360 Il y a 2 ans Répondre

je crois que j'ai compris !!!

tempo Il y a 2 ans Répondre

oui tout à fait je n'ai pas pour l'instant d'adresse web à mettre ...
je fait quoi je met un espace à la place ?
pour pouvoir dire tout ce que je pense de toi raton !!!

Grafikart Il y a 2 ans - Répondre

Tu laisse le champ vide pas d'espace ni rien

TeddyDu44 Il y a 2 ans Répondre

si sa arrive a quelqu'un à le problème : Dans votre profil votre adresse internet n'est pas valide.

tempo Il y a 2 ans Répondre

"tchev (Lundi 23 Novembre 2009 à 15:20):

Maintenant tu m'as dit comment fixé le problème des commentaires, je voulait juste de dire un grand merci pour tout tes tutoriels de superbes qualités! "

comment fait on quand on est membre pour poster un commentaire quand on est connecté ... merci de la réponse (de toute manière ils seront positifs ...)

Grafikart Il y a 2 ans - Répondre

Dans ton profil tu as une adresse de site web qui n'est pas valide (pas de http:// par exemple)

Darrelo2 Il y a 2 ans Répondre

Merci c'est vraiment gentil ! T' es trop génial.

cerise Il y a 2 ans Répondre

youpy le voici je suis trop contente
merci vraiment

Baptiste Il y a 2 ans Répondre

excellent ça! encore un tuto de qualité et bien expliqué!

lioninho Il y a 2 ans Répondre

Thanks ce tuto me sera très utile pour un projet que je suis entrain de réaliser.

Zike Il y a 2 ans Répondre

Super comme tuto. :D

Laink Il y a 2 ans Répondre

Encore un tuto génial, merci.

Pro-Designer Il y a 2 ans Répondre

Salut GA .. bon tuto .. c'est tres important pour moi , parce que je suis entrain de faire un potfolio pour moi ..
Merci frero ..

lemirandais Il y a 2 ans Répondre

Je rentre chez moi et je regarderais ton tutoriel même si c'est déjà une sorte de caroussel sur mon site.
Déjà des idées pour le ou les prochains tutoriels.
Des idées, comment faire une bonne atomique? Je blague bien sur, bon courage pour la suite....

Badbart Il y a 2 ans Répondre

Bon tuto. A mon avis les commentaires de demande d'aide vont affluer d'ici pas tard.

Ritter jack Il y a 2 ans Répondre

Woaw ! Les tutos fusent en ce moment ! Super merci raton ^^

TeddyDu44 Il y a 2 ans Répondre

Maintenant tu m'as dit comment fixé le problème des commentaires, je voulait juste de dire un grand merci pour tout tes tutoriels de superbes qualités!

Krusty Il y a 2 ans Répondre

Cool ! J'attendais ce tuto avec impatience :DDDD

dechuck Il y a 2 ans Répondre

Super ton tuto!!
Je regarde ça se soir en revenant de l'école!!

Merci de continuer de faire des aussi bon tuto!! :D

Remus Il y a 2 ans Répondre

héhé Merci je l'attendais depuis sont annonce sur Twitter :D

Likeo Il y a 2 ans Répondre

Mais alors ça c'est vraiment trop super sympa c'est trop utile merci beaucoup t'es trop fort !
Continue comme ça le raton !

Laisser un commentaire

Si vous avez une question il est conseillé d'utiliser le forum si vous voulez une réponse sûre.