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

JavaScript Discussion :

Afficher / masquer des div


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Points : 55
    Points
    55
    Par défaut Afficher / masquer des div
    Bonjour,

    Je fais un menu sur 2 div (dossiers, liens), mon problème est le suivant:
    Quand je quitte un div je voudrais qu'il se masque, voici mon code:

    Javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function AfficheDiv(ID_Ancre,ID_Div){
      document.getElementById(ID_Div).style.left = getLeft(ID_Ancre);
      document.getElementById(ID_Div).style.top = getTop(ID_Ancre);
      document.getElementById(ID_Div).style.visibility = "visible";
    }
    function MasqueDiv(ID_Div){
      document.getElementById(ID_Div).style.visibility = "hidden";
    }
    Style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    div 
      {
      height: 90px; 
      width: 90px;
      background-color:#FFFFFF;
      filter:alpha(opacity=70);
      -moz-opacity:0.5;
      -khtml-opacity: 0.5;
      opacity: 0.5;
      }
    Body
    Appel 1er div:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a href="#" onmouseover="AfficheDiv(document.getElementById('Ancre5'),'MonDiv1');" onblur="MasqueDiv('MonDiv1');">Corali</a>
    <A id="Ancre5" name="Ancre5">&nbsp;</A>
    Appel 2ème div:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a href="#" onmouseover="AfficheDiv(document.getElementById('Ancre2'),'MonDiv2');" onblur="MasqueDiv('MonDiv2');">Dossier 1</a>
    <A id="Ancre2" name="Ancre2">&nbsp;</A>
    Donc comme ça la transition d'un div sur l'autre se passe bien, mais le 2ème div reste persistant.

    Pouvez vous me donner un coup de main svp ?

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    utilise style.display ("":"none")

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Merci FremyCompagny mais je vois pas trop comment utiliser cette commande.

    Là ou j'en suis c'est:

    Ma page avec plusieurs liens (L1) et ancres,
    Au survol d'un lien (L1): ouverture d'un div (D1) avec pusieurs liens (L2) et ancres,
    au survol d'un lien(L2): ouverture d'un 2ème div (D2) avec les liens de redirection.

    Sur le lien (L1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a href="#" onmouseover="PosAncre(document.getElementById('m1'), 'Menu'); AfficheDiv('Menu');">Truc</a>
    <A id="m1">&nbsp;</A>
    Sur le div (D1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <DIV id="Menu" style="position:absolute; visibility: hidden;" onmouseover="AfficheDiv('Menu');">
    Sur le lien (L2):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a href="#" onmouseover="PosAncre(document.getElementById('sm1'), 'SMenu'); AfficheDiv('SMenu');">Dossier 1</a>
    <A id="sm1">&nbsp;</A>
    Sur le div (D2):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <DIV id="SMenu" style="position:absolute; visibility: hidden;" onmouseover="AfficheDiv('SMenu');" onmouseout="MasqueDiv('SMenu');">
    Bon le problème c'est que comme ça mon 2ème div reste visible si je passe pas dessus.

    C'est un truc a devenir fou, j'ai essayé plein de conbinaisons entre les actions sur les liens et sur les propriétés des div mais rien a faire pour avoir quelque chose de propre c'est super lourd !

    Avez vous un exemple svp, je ne trouve rien.
    Merci.

  4. #4
    Membre régulier Avatar de raoulchatigre
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2004
    Messages : 99
    Points : 87
    Points
    87
    Par défaut
    la reponse de FremyCompany est une bonne solution

    dans chacune de tes div, en css ou style="" comme tu préfères, met tes valeurs par défaut.

    ou bien et ensuite sur l'évènement qui t'intéresse, tu appelles


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('maDivAAfficher').style.visibility = "hidden";
    pour faire disparaitre la div tout en gardant son emplacement et sa taille
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('maDivAAfficher').style.display = "none";
    pour faire disparaitre complétement la div et recalculer les tailles des autres div.

    Essayes, c'est le meilleur moyen de voir la solution

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Merci de ton aide,

    Mais regarde les fonctions sivantes, c'est déja ce que je fais (ou alors j'ai vraiment pas bien pigé)

    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
     
    function AfficheDiv(ID_Div){
      if (ID_Div=='Menu'){
        document.getElementById(ID_Div).style.left = ml;
        document.getElementById(ID_Div).style.top = mt;
      }
      if (ID_Div=='SMenu'){
        document.getElementById(ID_Div).style.left = sml;
        document.getElementById(ID_Div).style.top = smt;
      }
      document.getElementById(ID_Div).style.visibility = "visible";
    }
    function MasqueDiv(ID_Div){
      document.getElementById(ID_Div).style.visibility = "hidden";
    }

  6. #6
    Membre régulier Avatar de raoulchatigre
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2004
    Messages : 99
    Points : 87
    Points
    87
    Par défaut
    ok j'étais à coté de la plaque :
    peut-être est-ce l'appel de tes évènements en html :
    as-tu essayé onmouseout ?

    EDIT: autant pour moi j'avais pas vu : tu l'utilises deja :s

  7. #7
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function AfficheDiv(ID_Div){
      if (ID_Div=='Menu'){
        document.getElementById(ID_Div).style.left = ml;
        document.getElementById(ID_Div).style.top = mt;
      }
      if (ID_Div=='SMenu'){
        document.getElementById(ID_Div).style.left = sml;
        document.getElementById(ID_Div).style.top = smt;
      }
      document.getElementById(ID_Div).style.display = "block";
    }
    function MasqueDiv(ID_Div){
      document.getElementById(ID_Div).style.display = "none";
    }

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Fremy,

    Du coup ça affiche plus rien, pas d'erreur sur le lien mais le div ne s'affiche pas...

  9. #9
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    || Code Edité ||

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    C'est bon j'ai trouvé la solution merci de votre aide

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

Discussions similaires

  1. afficher masquer des divs
    Par chris801 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/09/2011, 14h42
  2. Afficher/Masquer des div
    Par chris801 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/02/2011, 13h47
  3. Afficher / Masquer des div
    Par spawns dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 20/11/2008, 15h41
  4. Afficher / Masquer des DIV
    Par Bounty59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/01/2007, 10h33
  5. Impossible d'afficher ou masquer des DIV
    Par ensemblevide dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 13h23

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