Partage
  • Partager sur Facebook
  • Partager sur Twitter

Animation jQuery

Sujet résolu
    19 juillet 2009 à 22:32:22

    Bonjour,
    J'ai un problème de jQuery...
    $("#menu a").mouseover(function(){ 							
            	$(this).stop().animate({
    				backgroundColor:"#999",
    				lineHeight:"25px"
    				},100)  
       		}); 
    		
    		$("#menu a").mouseout(function(){ 							
            	$(this).stop().animate({ 
    				lineHeight:"33px"
    				},100)  
       		});
    


    J'aimerais bien que la couleur de fond de mon lien devienne blanche lors d'un mouseover.
    Le lineHeigt fonctionne pourtant bien, mais le background reste le même.
    Une idée qqu'un ?

    Merci pour votre aide, Raptor02
    • Partager sur Facebook
    • Partager sur Twitter
      19 juillet 2009 à 22:42:07

      Remplace
      $(this)
      
      par
      this
      
      pour voir.
      • Partager sur Facebook
      • Partager sur Twitter
        20 juillet 2009 à 10:36:09

        Non non $(this) est bon, ce qui n'est pas bon, c'est qu'on ne peut pas faire de animate() sur le background-color.
        • Partager sur Facebook
        • Partager sur Twitter
          20 juillet 2009 à 11:03:42

          mais
          $(), c'est pas document.getElementById() ?
          • Partager sur Facebook
          • Partager sur Twitter
            20 juillet 2009 à 11:09:40

            $() c'est l'outils à tout faire de jQuery, c'est principalement une fonction (Sizzle) qui sert de sélecteur, si tu veux avec toutes les libs JS modernes tu peux utiliser des sélecteurs CSS & xPath ;)
            • Partager sur Facebook
            • Partager sur Twitter
              20 juillet 2009 à 11:13:50

              OK...
              Mais je vois pas l'intérêt de $(this)... vu que ça revient à selectionner this... or on peut y accéder avec this tout court...
              • Partager sur Facebook
              • Partager sur Twitter
                20 juillet 2009 à 12:42:30

                Bah non avec this ça a tendance à merder... Ils doivent modifier des trucs derrière qui font que $(this) est nécessaire.
                • Partager sur Facebook
                • Partager sur Twitter
                  20 juillet 2009 à 14:29:16

                  Télécharge le plug-in jquery-colors, et ton code fonctionnera. :)

                  http://plugins.jquery.com/project/color


                  Jquery n'intègre pas par défaut cette astuce dans le animate(), il faut donc un petit fichier (ci-dessus).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 juillet 2009 à 15:26:46

                    @RockandRoll: cerium50 l'avait dit avant..
                    Pour compléter vos réponses, on peut aussi inclure le module 'Effets' de jQuery UI.
                    Ton code peut être raccourci en :
                    $('#menu a').hover(function(){
                      $(this).stop().animate({
                        backgroundColor: '#999'
                        ,lineHeight: '25px'
                      },100);
                    },function(){
                      $(this).stop().animate({ 
                        lineHeight: '33px'
                      },100);
                    });
                    
                    (après tu met l'indentation que tu veux)
                    hover() est un raccourci de mouseover() et mouseout().


                    Pour ce qui est du débat sur jQuery :
                    Presque toutes les méthodes jQuery finissent par appeler au bout d'un moment each() : ici, mouseover() appelle bind() qui finit par appeler each().
                    Ce dernier itère et fait fonctionDonnée.call(elementDuDom) pour chaque élément contenu dans l'objet jQuery.
                    En résumé this n'est pas un objet jQuery mais un élément du DOM.

                    Comme dit plus haut, il faut utiliser la fonction principale qui le transforme en objet jQuery :
                    // Handle $(DOMElement)
                    if ( selector.nodeType ) {
                      this[0] = selector;
                      this.length = 1;
                      this.context = selector;
                      return this;
                    }
                    

                    Comment voulez-vous utiliser des méthodes sur un objet qui n'as pas ces méthodes ?


                    En tout cas j'ai bien étudié le code de jQuery, donc si quelqu'un a des remarques, n'hésitez pas je suis ouvert à tout débat.
                    Ce que je dit seras dans le tuto un jour ou l'autre donc autant faire en sorte qu'il y aie le moins d'erreurs :) .
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 juillet 2009 à 22:53:44

                      @tit_toinou : il y aura une partie sur le fonctionnement de jQuery (je veux dire non pas comment se servir de la lib, mais comment ça marche) ? Ça me semble très intéressant :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 juillet 2009 à 23:41:01

                        Dès le début du troisième chapitre je dis ce qu'est un objet jQuery (ce n'est pas un tableau !), mais tout ce que j'ai dit plus haut sera sûrement dans un des derniers chapitres de la seconde partie (dans longtemps donc :( ).

                        En tout cas c'est sûr que j'expliquerais comment tout ça marche histoire de ne pas laisser des parts d'ombres ;) .
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 juillet 2009 à 10:03:38

                          Sympa, ça m'est déjà arrivé de me plonger dans jQuery pour voir comment ça marcher mais chaque petite fonction en appelle une autre qui ne appelle une autre du coup j'ai abandonné ^^
                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 juillet 2009 à 10:46:47

                            Moi je pensais expliquer en gros comment ça marchait (La POO de jQuery, quoi) !
                            Penses-tu qu'il est vraiment utile d'expliquer étape par étape ce que si passe dans jQuery ?

                            C'est un travail fastidieux qu'on peut faire soi-même (vu qu'on peut accéder aux sources, qui sont en plus commentées) une fois avoir compris le gros plan (fonctions, méthodes de jQuery etc..) de la bibliothèque..
                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 juillet 2009 à 11:02:04

                              Non non une explication générale suffira ^^
                              • Partager sur Facebook
                              • Partager sur Twitter
                                21 juillet 2009 à 11:10:38

                                Ok je verrais ce que je peux faire.
                                Étant donné que j'avance à petits pas, ce sera tout de même dans assez longtemps :( .
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  21 juillet 2009 à 12:10:49

                                  Citation : tit_toinou

                                  Ok je verrais ce que je peux faire.
                                  Étant donné que j'avance à petits pas, ce sera tout de même dans assez longtemps :( .



                                  Va t'acheter un pseudo :(
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    13 août 2009 à 23:43:39

                                    Le pluggin UI de Jquery ou color fonctionne parfaitement, merci :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Animation jQuery

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown