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 :

Mouseover sur une div class


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut Mouseover sur une div class
    Bonjour,

    j'aimerai afficher le contenu d'une div lors du passage de la souris sur une autre.
    J'ai trouvé un code permettant de faire cela sur stackoverflow mais il ne marche que pour les id et non les class.
    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div style="width: 80px; height: 20px; background-color: red;" 
            onmouseover="document.getElementById('div1').style.display = 'block';">
       <div id="div1" style="display: none;">Text</div>
    </div>
    j'ai essayé avec
    Mais ça n'a pas l'air de marcher...

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    bonjour,

    tu peux être plus précis ? Tu voudrais que ta fonction réalise cette opération pour des éléments qui ont une classe particulière ? Dans ton exemple, les éléments <div> n'utilisent aucune classe.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    Bonjour,
    si la DIV est contenue dans la DIV qui reçoit le mouseover, le CSS suffit
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>[Hover]</title>
    <style>
    .une_classe{
      width: 80px;
      height: 20px;
      background-color: red;
    }
    .une_classe div{
      display: none;
    }
    .une_classe:hover div{
      display:block;
    }
    </style>
    </head>
    <body>
    <div class="une_classe" >
       <div>Text</div>
    </div>
    </body>
    </html>

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    bonjour,

    tu peux être plus précis ? Tu voudrais que ta fonction réalise cette opération pour des éléments qui ont une classe particulière ? Dans ton exemple, les éléments <div> n'utilisent aucune classe.
    Le code donné est celui que j'ai trouvé sur stackoverflow.
    Et comme on peut le voir, il utilise des id. J'aimerai avoir un code similaire mais utilisant des classes. Pas de soucis niveau html évidemment mais souci sur le java ou le "document.getElementById('div1')" que j'ai remplacé par "getElementsByClass" ne fonctionne pas.

    Bonjour,
    si la DIV est contenue dans la DIV qui reçoit le mouseover, le CSS suffit
    Oui, sauf que j'aimerai que la div qui englobe l'autre div soit affichée.

    Voilà plus de précisions:
    J'ai des petits messages postés via un système en php. Ces derniers sont encadrés par une légère bordure.
    Ce que j'aimerai obtenir, c'est que la date ainsi qu'un lien viennent apparaitre lorsque la souris est pointée sur le message.

  5. #5
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par robinowned
    j'ai essayé avec
    Mais ça n'a pas l'air de marcher...
    Peut-être parce que cette fonction n'existe pas...

    Citation Envoyé par robinowned
    mais souci sur le java
    Mouais... je doute que JavaScript sache compiler et exécuter Java...

    Bref, tu peux te tourner vers getElementsByClassName() en faisant attention de bien distinguer un élément HTML et une collection d'éléments HTML.
    Tu peux aussi te tourner vers querySelector() ou querySelectorAll().

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Bovino
    Mouais... je doute que JavaScript sache compiler et exécuter Java...
    Désolé, j'ai du mal à me mettre dans la tête que java#javascript

    Bon ça à l'air de fonctionner avec le querySelector() mais j'ai quand même un problème au niveau du résultat.
    En effet, il se comporte comme une <div id>: Il ya 10 messages affichés sur la page, chaque message contient deux div (celle du message et celle de la date), le mouseover/mouseout fonctionne mais... uniquement sur le premier message. Autrement dit, il y a uniquement la date du premier message qui s'affiche lorsque l'on passe la souris sur n'importe quel message !
    Une idée ?

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    Citation Envoyé par robinowned
    Bonjour,
    si la DIV est contenue dans la DIV qui reçoit le mouseover, le CSS suffit
    Oui, sauf que j'aimerai que la div qui englobe l'autre div soit affichée.
    comment veux tu qu'elle recoive un événement si elle est masquée ?

    Au vu de tes précisions c'est exactement ce que je t'ai proposé.

    Je te remets un exemple, un peu plus construit, qui te montreras le principe, si bien sur tu le testes.
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>[Hover]</title>
    <style>
    html, body{
      font-size:1.0em;
      font-family:Verdana;
    }
    .article{
      position:relative;
      width: 400px;
      background-color: #FFF;
      border:1px solid #CCC;
      margin:10px;
      padding:5px;
    }
    .article div.auteur{
      display: none;
      position:absolute;
      float:right;
      top:-5px;
      right:-5px;
      background-color: #FFE;
      border:1px solid #369;
      font-size:0.8em;
      padding:0.25em;
    }
    .article:hover{
      background-color: #F8F8F8;
      border:1px solid #09F;
    }
    .article:hover div.auteur{
      display:block;
    }
    </style>
    </head>
    <body>
    <div class="article" >
      <div class="auteur">Auteur : Latrine loser</div>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
      <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
    </div>
    <div class="article" >
      <div class="auteur">POOête : <a href="http://www.developpez.net/forums/u230465/romainvaleri/">Romain VALERI</a></div>
      <p>Une femme évoquant l'esprit de Chantal Goya dans le corps d'Armande Altaï ne se couche pas vraiment.</p>
      <p>Un homme évoquant l'esprit de Pierre Richard dans le corps de Saint-Nicolas n'attendra presque plus.</p>
      <p>Une créature de rêve avec la voix de John Lennon et les cheveux de Coco l'asticot ne clignote guère.</p>
    </div>
    </body>
    </html>

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Au temps pour moi, bien joué et merci.

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

Discussions similaires

  1. [Form] Superposition d'une liste select sur une div 'absolute'
    Par BRAUKRIS dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 09/02/2007, 18h43
  2. [DOM] Pb gestion de l'évènement mouseout sur une <DIV>
    Par rvux69 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/01/2007, 21h27
  3. Effet déroulant sur une div
    Par supersmoos dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/01/2007, 11h18
  4. Clik sur une <DIV>
    Par Commodore dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2006, 13h41
  5. Réponses: 2
    Dernier message: 12/05/2006, 15h58

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