Bonjour,

Tout d'abords 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"));

});

Aucune réponse