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 :

Enchainer deux effets sur deux éléments différents


Sujet :

jQuery

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 354
    Points : 410
    Points
    410
    Par défaut Enchainer deux effets sur deux éléments différents
    Bonjour, je n'arrive plus à trouver la condition qui permet de faire disparaître un élément A, et à la fin de sa disparition (et pas pendant), on enchaîne avec l'apparition d'un élément B.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('div#block1').fadeOut('slow',function(){
         $('div#block2').fadeIn("slow");
    });
    Ca ne marche pas chez moi, pendant que le bloc 1 disparaît, le bloc 2 apparaît déjà. Or je voudrais que le bloc 2 attende la disparition totale du bloc 1 avant d'apparaître à son tour.

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    pourquoi div#block1 ... un id est unique, #block1 suffit...

    A part ça en principe le callback ne devarit se lancer qu'a la fin de l'animation ???

    Je ne vois pas pourquoi ça ne fonctionnerait pas

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 354
    Points : 410
    Points
    410
    Par défaut
    je sais mais je préfère préciser, je pars du principe que plus je mets d'éléments, plus vite il trouvera. Par exemple div#bloc1 lui évitera de parcourir les span, td, etc..

    En fait pour être plus correct, le code s'apparentait plutôt à celui-là, une fonction avec un numéro passé en paramètre ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    function test(num){
     
         $('#bouton'+num).click(function(){
     
              $('.blocks').fadeOut('slow',function(){
                   $('#block'+num).fadeIn("slow");
              });
         }
    }
     
    test(1);test(2);..
    le html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <div id="block1" class="blocks"></div>
    <div id="block2" class="blocks"></div>
    <div id="block3" class="blocks"></div>
     
    <div id="bouton1">Affiche bloc1</div>
    <div id="bouton2">Affiche bloc2</div>
    <div id="bouton3">Affiche bloc3</div>
    En gros je fais disparaître tous les blocs, et j'affiche celui cliqué.

    Mais comme ils s'affichent au même endroit, en fait je pense que ça fait comme un décalage parce que le contenu textuel des blocs n'est pas de même taille. Je pense qu'en fait la seule manière pour ne pas avoir cette sorte de cassure à la disparition d'un élément pour l'apparition d'un autre, c'est de mettre les blocs en display:absolute, et là ce sera fluide. Je voulais l'éviter mais je pense que je n'ai pas le choix.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    je pars du principe que plus je mets d'éléments, plus vite il trouvera.
    Non c'est tout le contraire !!

    si tu precises div avant il va d'abord cherche tous les divs poru en extraire les sout elements ensuite ...

  5. #5
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 354
    Points : 410
    Points
    410
    Par défaut
    Ah d'accord, je prends note.

    Pour ce qui est du reste, show() / hide() sont plus adaptés, si d'autres viennent par ici et se demandent la différence entre show() et fadeIn(), c'est la même chose sauf que show() (avec une notion de durée) anime aussi le width et le height de notre élément.

    Donc je laisse tomber le fadeIn/fadeOut. J'utilisais le mauvais outil

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/10/2013, 16h49
  2. Réponses: 2
    Dernier message: 10/10/2008, 20h35
  3. Réponses: 6
    Dernier message: 22/05/2008, 12h34
  4. comparer deux fichiers sur deux machines différentes
    Par jackiechen dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 31/12/2007, 13h39
  5. Sum de deux champs sur deux tables différentes
    Par kluh dans le forum Oracle
    Réponses: 11
    Dernier message: 29/09/2005, 18h21

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