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 :

Fade in à l'ouverture et fade out à la fermeture


Sujet :

jQuery

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 2
    Par défaut Fade in à l'ouverture et fade out à la fermeture
    Bonjour,

    J'aurais besoin d'un coup de main pour mettre en place un petit effet fadein fadeout sur mon site. Il est constitué d'un bandeau titre et d'une colonne menu fixe, et le contenu est généré en php selon l'argument passé dans l'url.

    Lors d'un changement de page, je voudrais que ce contenu disparaisse avec un effet de fade out et que le contenu de la page suivante chargée apparaisse en fade in mais je rencontre quelques difficultés.

    Je ne suis pas très doué en javascript donc j'ai utilisé des scripts tout faits mais sans succès, puis j'ai tenté d'utiliser les fonction fadeIn() et fadeOut() de jQuery mais je ne suis pas sûr de savoir sur quel événement déclencher ces fonctions.

    Voici mon code dans l'état actuel des choses :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script src="jquery.js" type="text/javascript"></script>
            <script type="text/javascript">
     
            $("#contenu").load(function(){
               $("#contenu").fadeIn(1000);
            });
     
            $("#contenu").unload(function(){
               $("#contenu").fadeOut(1000);
            });
     
    </script>
    Merci pour votre aide !

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    cela fonctionne bien à condition que l'element soit initialisé en display none

    ne pas oublier de mettre une balise noscript pour remetre le style à display block sinon lorsque javascript est desactivé les site n'esrt pas visible
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    cela fonctionne bien à condition que l'element soit initialisé en display none

    ne pas oublier de mettre une balise noscript pour remetre le style à display block sinon lorsque javascript est desactivé les site n'esrt pas visible
    Pas tout à fait, dans ce contexte, load concerne l'événement onload, or à moins que son contenu soit une image, un élément HTML ne possède en général pas d'événement onload (pas plus que onunload du reste).

    Il serait donc préférable de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $.ready(function(){
        $("#contenu").fadeIn(1000);
        $(window).unload(function() {
            $("#contenu").fadeOut(1000);
        });
    })
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 2
    Par défaut
    Merci à tous les deux pour vos réponses,

    @Spacefrog : le div est bien initialisé en display none
    @bovino : j'ai remplacé mon bout de code par le tien (placé entre les balises <head>)

    Mais ça ne fonctionne pas

    J'ai essayé sur Chrome et Firefox, le div #contenu ne s'affiche pas. Lorsque j'enlève le display none, le div s'affiche bien mais il n'y a aucun effet de transition...

    Quelqu'un a une idée ? Sinon je suis preneur de solutions différentes sans la lib jQuery...

    Merci


    edit : Je sens que je touche au but.

    Voici deux versions du code et ce qui se produit dans chaque cas :

    Celle-ci est une version de test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script>
            $(window).ready(function(){
               fade("photo_intro");})
     
            $(window).click(function() {
     
               fade("photo_intro");})
     
            </script>
    Au chargement, "photo_intro" apprait bien en fade in.
    Lorsque je clique dessus, "photo_intro" disparait en fade out

    fade() est un script qui mesure l'opacité du div, c'est donc une fonction deux en un.

    Maintenant deuxième version du code (la vraie) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script>
            $(window).ready(function(){
               fade("photo_intro");})
     
            $(window).unload(function() {
     
               fade("photo_intro");})
     
            </script>
    Cette fois le fade in est ok, mais le fade out n'a pas lieu en sortie de page... Je ne comprends pas pourquoi, car en glissant une alert(), je constate bien que l'événement unload de window est bien intercépté

    Help !

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2014, 10h08
  2. Ouverture Access depuis Excel - erreur fermeture automatique
    Par operaq dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/05/2014, 14h36
  3. Ouverture d'un Etat et fermeture d'un formulaire
    Par bastien3117 dans le forum IHM
    Réponses: 1
    Dernier message: 14/08/2009, 10h40
  4. [Win2000 SRV] Ouverture de session et puis fermeture tout de suite
    Par annedeblois dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 20/10/2007, 10h36
  5. Effet Fade In / Fade Out sur une surface DirectDraw
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 08/09/2002, 17h37

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