IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Déclenchement d'une animation au click


Sujet :

jQuery

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut Déclenchement d'une animation au click
    Bonjour,

    J'aimerais faire un test, lancer une animation basique au clique, je me suis donc crée un petit script (je veux simplement modifier la largeur d'un paragraphe pour le moment), mais lorsque je clique, rien ne se passe, voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <div id="contenu">
         <p>TEST</p>
     
         <button id="anim_launch">Animation 1</button>
     
         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    		<script type="text/javascript">
    			$("#contenu").children("#anim_launch").click(function(){ 
    			  $("#contenu").children("p") 
    				.css("width","400px") 
    				.animate({ 
    				  width : "600px" 
    				}); 
    			}); 
         </script>
    </div>
    J'insère la feuille de style dans mon header, je ne vois pas ce qui pourrait bloquer le déclenchement de l'animation

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Appel de jQuery et code JS doivent se trouver dans le head ou mieux (performance) juste avant le </body>. Un id doit être unique dans la page, c'est donc un sélecteur jQuery de première classe et autosuffisant.

    Je vous engage à prendre le code de l'exemple comme base de travail pour vos prochains tests sur jQuery.

    Exemple, lire les commentaires du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <!doctype html>
    <html lang="fr">
    <head>
    	<meta http-equiv="X-UA-Compatible" content="chrome=1">
    	<meta charset="utf-8">
    	<meta name="Author" content="Daniel Hagnoul">
    	<title>Forum jQuery</title>
    	<style>
    		/* Base */
    		body { background-color:#dcdcdc; color:#000000; font-family:sans-serif; font-size:medium; font-style:normal;
    		font-weight:normal; line-height:normal; letter-spacing:normal; }
    		h1,h2,h3,h4,h5 { font-family:serif; }
    		div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img { margin:0px; padding:0px; }
    		h1 { font-size:2em; text-shadow: 4px 4px 4px #bbbbbb; text-align:center; }
    		p { padding:6px; }
    		div#conteneur { width:95%; min-width:800px; min-height:500px; margin:12px auto; background-color:#FFFFFF;
    		color:#000000; border:1px solid #666666; }
     
    		/* Test */
    		p.test {
    			width:200px;
    			height:200px;
    			border:1px solid red;
    		}
    	</style>
    </head>
    <body>
    	<h1>Forum jQuery</h1>
    	<div id="conteneur">
     
    <div id="contenu">
    	<p class="test">TEST</p>
    	<button id="anim_launch">Animation 1</button>
    </div>
     
     	</div> 
    	<script charset="utf-8" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
    	<script>
    		$(function(){
     
    $("#anim_launch").click(function(){
    	/*
    	 * Pour animer un élément du DOM il faut que
    	 * cet élément ait reçu au préalable le même style
    	 * ici width (on passe de 200px à 600px).
    	 *
    	 * Durée de l'animation 3000 millisecondes soit 3s
    	 */
    	$("#contenu").children("p").animate({"width" : "600px"}, 3000); 
    });
     
    		});
     	</script>
    </body>  
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    A noter que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu").children("p")
    peut tout simplement s'écrire :



    [edit] et que du coup, pour ne sélectionner que le premier, ça devient super facile. Perso, je préfère lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu > p:first")
    à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu").children("p").first()
    ou encore à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu").children("p")[0]
    My 2cts
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour @Arnaud F.

    Mais depuis jQuery 1.4.X (j'ai oublié la valeur du X et le lien de référence, mais je pense à 2), les sélecteurs complexes sont résolus en interne avant usage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu > p:first")
    Ce code serra transformé en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu").children("p").first()
    Donc fausse bonne idée, car elle engendre une perte de performance.

    My 2cts

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Bonjour @Arnaud F.

    Mais depuis jQuery 1.4.X (j'ai oublié la valeur du X et le lien de référence, mais je pense à 2), les sélecteurs complexes sont résolus en interne avant usage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu > p:first")
    Ce code serra transformé en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu").children("p").first()
    Donc fausse bonne idée, car elle engendre une perte de performance.

    My 2cts
    C'est sur qu'il faut peser le pour et le contre, je dis pas, cependant, avec la puissance des PCs et la vitesse des moteurs JS actuels (or IE6 qui est censé être mort...), je pense qu'on peut se permettre ce genre de chose

    C'est une écriture plus concise, plus lisible et je privilégie toujours la lisibilité quand je peux

    C'est toujours le même débat entre perfs et lisibilité, faut trouver le juste milieu
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    J'ai beaucoup utilisé cette écriture avant et il m'arrive encore de l'utiliser, mais maintenant je préfère résoudre le sélecteur plutôt que de laisser le soin à jQuery.

    Citation Envoyé par Arnaud F. Voir le message
    C'est une écriture plus concise, plus lisible et je privilégie toujours la lisibilité quand je peux
    Plus concis : OUI !

    Plus lisible, cela dépend du niveau en CSS et il y a des pièges, par exemple avec >

    Plus performant, cela se discute pour un exemple simple, mais pour une page et un code complexe je ne pense pas.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Par défaut
    Ok merci pour vos réponses !

    Je vais effectivement garder cette base pour mes prochains tests et essayé de faire des animations un peu plus complexe !

    Merci beaucoup pour l'aide, et bonne année !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Controler une anim Flash
    Par Nico-ganja dans le forum Flash
    Réponses: 2
    Dernier message: 04/03/2003, 00h37
  2. Réponses: 3
    Dernier message: 25/11/2002, 14h15
  3. comment integer une animation swf dans une page
    Par naili dans le forum Intégration
    Réponses: 7
    Dernier message: 18/09/2002, 18h54
  4. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 16h11
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo