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 :

clic affichage /pas affichage


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut clic affichage /pas affichage
    Bonjour à tous!
    J'ai une image qui jouera le role de bouton d'un côté, et de l'autre un div contenant un lecteur flash.
    J'aimerais que lorsque je clique sur le bouton le div apparaisse
    et lorsque je clique sur le div, que celui-ci ne disparaisse pas
    c'est faisable en css?
    j'ai un peu honte de ma question, mais je me suis réveillé avec la moitié de mes neurones :s

    j'en suis à :

    css
    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
    .FLVplayer 
      {
      width: 384px;
      height: 288px;
      display: block;
      text-align: center;
      border: 0px red;
      text-decoration: none;
      position:absolute;
      top:0px;
      left:0px;
      margin:0px 0px;
      z-index: 45;
     } 
     
     
    .video
      {
      background-image: url(th007.jpg);
      position:absolute;
      background-repeat: no-repeat;
      top:8px;
      left:46px;
      width: 38px;
      height: 38px;
      padding: 0;
      z-index:60;
      }
    html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="video">
    </div>
     
    <div class="FLVplayer">
    <object type="application/x-shockwave-flash" width="384" height="288" 
         wmode="transparent" data="flvplayer.swf?file=jfleroux_alice.FLV">
    	<param name="movie" value="flvplayer.swf?file=jfleroux_alice.FLV" />
    	<param name="wmode" value="transparent" />
    </object>
    </div>
    un petit coup de main serait la bienvenue (un coup de poing moins )

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    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
    .FLVplayer 
      {
      width: 384px;
      height: 288px;
      display: none;
      text-align: center;
      border: 0px red;
      text-decoration: none;
      position:absolute;
      top:0px;
      left:0px;
      margin:0px 0px;
      z-index: 45;
     }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="video" onclick="showDiv();">
    </div>
    
    <div class="FLVplayer" id="monid">
    <object type="application/x-shockwave-flash" width="384" height="288" 
         wmode="transparent" data="flvplayer.swf?file=jfleroux_alice.FLV">
    	<param name="movie" value="flvplayer.swf?file=jfleroux_alice.FLV" />
    	<param name="wmode" value="transparent" />
    </object>
    </div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script language="javascript">
    function showDiv(){
       document.getElementById('monid').style.display = "block";
    }
    </script>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    yaoutch !!
    super merci
    ça fonctionne très bien!

    t'aurais pas une astuce pour faire encore mieux, c'est à dire lorsque tu cliques hors-div ça fasse disparaitre la div? (je suis nul en javascript, dsl )
    ou alors quelque chose dans le genre qui me permette de la retirer

    pleease

    s'il vous plait ...
    toutes propositions, idées, est la bienvenue
    help

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Hummm. à tester : tu mets dans le body un onclick qui appel une fonction qui testera si ton élément est visible et si c'est le cas le fera disparaitre

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    merci pour ta proposition

    (je suis nul en javascript, dsl )
    pourrais-tu m'en dire plus quand à la démarche à suivre (un ptit bout de code par exemple^^)
    ps: je joue par au tire au flanc, hein!

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    ben tu l'as déjà plus haut c'est la même chose sauf qu'il faut le mettre aussi dans le <body>

    Mais moi je remplacerai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monid').style.display = "block";
    par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monid').style.display = (document.getElementById('monid').style.display == '')?"block":"";
    Et que pour le body je ferai juste le test et qui cache avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(document.getElementById('monid').style.display == 'block') document.getElementById('monid').style.display = '';

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    merci pour la ligne de code, cela apporte un élément de réponse à ma question
    par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(document.getElementById('monid').style.display == 'block') document.getElementById('monid').style.display = '';
    si je le place dans le function showDiv(){, cela empeche la fermture du div par un reclic sur l'icone.
    si je le met autre part dans le body, rien ne se passe :s

    *gloups*

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    C'est bien ce que je pensais... le body annule tous les autres évènements. Donc tu auras beau mettre dans le body et cliquer sur le div tu verras jamais rien. Mais tu as deux possibilités :
    • Utiliser le onmouseout du div qui apparait et faire en sorte de tout faire disparaitre.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      onmouseout="if(document.getElementById('monid').style.display == 'block') document.getElementById('monid').style.display = 'none';"
    • utiliser le body et faire un test sur le positionnement de la souris et du div qui fait apparaitre ce qui peut être long comme code.
    Si quelqu'un d'autre à une idée

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    bon cela dit, le fait que le div apparaisse lors du clic et disparaisse lors dun 2ème clic est tout à fait acceptable
    j'ai essayé le onmouse et rien ne se passe plus ... (bon je suis nul en javaS c'est pas nouveau)

    merci pour la réponse

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    déjà c'est pas onmouse mais onmouseout. En ensuite ça fonctionne car je l'ai testé avant de te le donner

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    oups
    je ne remet pas ton code en question^^

    c'est bien dans <script language="javascript"> qu'il faut mettre ta ligne?

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Citation Envoyé par Kerod
    ben tu l'as déjà plus haut c'est la même chose sauf qu'il faut le mettre aussi dans le <body>

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    ok ok
    j'ai donc ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script language="javascript">
    function showDiv(){
     
      document.getElementById('monid').style.display = (document.getElementById('monid').style.display == '')?"block":"";
      onmouseout="if(document.getElementById('monid').style.display == 'block') document.getElementById('monid').style.display = 'none';"
    }
    </script>
    et la nouvelle ligne de code ne change rien, c'est toujours un clic(=on un clic=off (clics sur le bouton)

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Kerod a écrit :
    ben tu l'as déjà plus haut c'est la même chose sauf qu'il faut le mettre aussi dans le <body>
    Arff je m'en mêle ce matin. donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="FLVplayer" id="monid" onmouseout="if(document.getElementById('monid').style.display == 'block') document.getElementById('monid').style.display = 'none';">

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    super merci

    juste un dernier truc,
    la video saffiche, je retire la souris du div hop elle disparait

    mais je dois faire 2 clic pour sur le bouton pour la relancer:
    un clic ne suffit pas puisquil ne se passe rien
    or au 2ème clic hop celà remarche

    à quoi cela peut-il être du?

    et il n'y a pas une commande genre onmouseclicover, pour que ce soit l'or du clic externe que ça disparaiisse? (j'en demande beaucoup je sais ^^)

  16. #16
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Tout simplement à cause d'un mauvais test dans ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script language="javascript">
    function showDiv(){
     
      document.getElementById('monid').style.display = (document.getElementById('monid').style.display == 'none')?"block":"none";
    }
    </script>

  17. #17
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Cf mon post dans ton autre topic.

    Citation Envoyé par Kerod
    Tout simplement à cause d'un mauvais test dans ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script language="javascript">
    function showDiv(){
     
      document.getElementById('monid').style.display = (document.getElementById('monid').style.display == 'none')?"block":"none";
    }
    </script>
    http://developpez.net/forums/showthread.php?t=213478

    Il a surtout appelé ses deux div "monid".

  18. #18
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Non il y en a qu'un seul...Et je vois pas comment la fonction pourrait marcher avec un test sur '' alors que c'est à none

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut
    oui j'avais bien recopier comme un ane

    bon j'avais 2 id identique, ce n'est plus le cas.
    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
    <div class="video" id="opa" onclick="showDiv();" onmouseover="opac()" onmouseout="opac()">
    </div>
     
     
    <div class="FLVplayer" id="monid"onmouseout="if(document.getElementById('monid').style.display == 'block') document.getElementById('monid').style.display = 'none';">
    <object type="application/x-shockwave-flash" width="384" height="288" 
         wmode="transparent" data="flvplayer.swf?file=D/03/jflerouxphotoM.FLV&autostart=false&clicktext=Making-off  ( clic to play )">
    	<param name="movie" value="flvplayer.swf?file=D/03/jflerouxphotoM.FLV&autostart=false&clicktext=Making-off  ( clic to play )" />
    	<param name="wmode" value="transparent" />
    </object>
    </div>
     
     
    <script language="javascript">
    function showDiv(){
     
      document.getElementById('monid').style.display = (document.getElementById('monid').style.display == '')?"block":"";
     
     
      }
     
    function opac(){
       if(document.getElementById("opa").style.filter == "alpha(opacity=100)"){
          document.getElementById("opa").style.filter = "alpha(opacity=10)";
          document.getElementById("opa").style.MozOpacity = "0.1";
          document.getElementById("opa").style.KhtmlOpacity = "0.1";
       }
       else{
          document.getElementById("opa").style.filter = "alpha(opacity=100)";
          document.getElementById("opa").style.MozOpacity = "1";
          document.getElementById("opa").style.KhtmlOpacity = "1";
       }
    }
    </script>
    et
    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
    .FLVplayer 
      {
      width: 384px;
      height: 288px;
      display: none;
      text-align: center;
      border: 0px red;
      text-decoration: none;
      position:absolute;
      top:150px;
      left:200px;
      margin:0px 0px;
      z-index: 89;
     }
     
    .video
      {
      display:bloc;
      position:absolute;
      background-image: url(D/03/th008.gif);
      background-repeat: no-repeat;
      top:256px;
      left:815px;
      width: 38px;
      height: 38px;
      border:1px; 
      padding: 0;
      z-index:89;
      color:white;
      opacity:0.1; filter:alpha(opacity=10); -moz-opacity:0.1; -khtml-opacity:0.1
     
       }
    voilà où j'en suis

    symptomes :
    -besoin de 2 clics sur le bouton pour réafficher la vidéo
    -opacité qui perd la boule du moment que l'on clique sur le bouton

    souhaits:
    -que ça fasse disparaitre le div avec un clic et non un survol

  20. #20
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Avec ton code actuel :

    symptomes :
    -besoin de 2 clics sur le bouton pour réafficher la vidéo Aucun problème
    -opacité qui perd la boule du moment que l'on clique sur le bouton Aucun problème

    souhaits:
    -que ça fasse disparaitre le div avec un clic et non un survol De quel div tu parles ? Si c'est celui de FLVplayer, c'est déjà le cas, non ?

Discussions similaires

  1. Pas affichage carte sur geoprtailFxmap_simple1
    Par hhenri46 dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 10/10/2012, 13h47
  2. Réponses: 5
    Dernier message: 19/04/2010, 11h38
  3. TK: affichage "pas à pas" zone texte
    Par xsmokingbenx dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 10/07/2009, 09h22
  4. [MySQL] Affichage : Pas de séléction
    Par GWBCLT dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/06/2009, 16h13
  5. [PopupControl] Affichage pas comme souhaitée
    Par Guigui_ dans le forum wxPython
    Réponses: 3
    Dernier message: 23/11/2006, 08h28

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