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 :

pourquoi l'image ne disparaît pas sur onmouseout ?


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut pourquoi l'image ne disparaît pas sur onmouseout ?
    Bonsoir,

    je n'arrive pas à faire marcher ce code :
    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
    <head>
    ...
      <script type="text/javascript">
    //-----------------------
    function see_bubble(img_){
    var Obj = document.getElementById('infobulle');
    Obj.innerHTML = "<img src='" +img_ +"' alt='" +img_ +"' width=100>";
    Obj.style.display = "block";
    }
    //--------------------
    function kill_bubble(){
    var Obj = document.getElementById('infobulle');
    Obj.innerHTML = "";
    Obj.style.display = "none";
    }
      </script>
    </head>
    <body>
    <div id="infobulle">
    <a href="---.jpg"
     onmouseover="see_bubble("---.jpg');"
     onmouseout="kill_bubble()" onclick="kill_bubble()">texte</a><br>
    </div>
    </body>
    Pourquoi ?

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onmouseover="see_bubble("---.jpg');"
    Il n'y a rien qui te perturbe là-dedans ?

    Ensuite, vu que tu remplaces le contenu de la div au survol du lien, tu supprimes donc celui-ci, je vois alors mal quand pourrait avoir lieu de mouseout

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Il n'y a rien qui te perturbe là-dedans ?
    En effet, l'erreur de copier-coller !

    Ensuite, vu que tu remplaces le contenu de la div au survol du lien, tu supprimes donc celui-ci, je vois alors mal quand pourrait avoir lieu de onmouseout
    Là, je suis entièrement d'accord, mais du coup, vois-tu un moyen pour supprimer l'image ?

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Tu te compliques la vie, bascule seulement l'attribut style.display de l'image en none et block lors de la survole du lien au lieu de supprimer et de créer à nouveau l'image.

    A+.

  5. #5
    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
    salut,

    fait une recherche avec le mot-clef "roll-over", tu auras un bon début

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Bonsoir, je reviens car ce n'est pas au point. D'abord, merci Andry.aime de me proposer une simplification ; mais j'ai tenté de l'appliquer :
    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
    <head>
      <meta content="text/html; charset=ISO-8859-1"
     http-equiv="content-type">
      <title>test</title>
      <script type="text/javascript">
    //-----------------------
    function see_bubble(img_){
    var Obj = document.getElementById('this_img');
    Obj.style.display = "block";
    }
    //--------------------
    function kill_bubble(){
    var Obj = document.getElementById('this_img');
    Obj.style.display = "none";
    }
      </script>
    </head>
    <body>
    <img src="---.jpg" id="this_img" display="none"
     width="100"><br>
    <a href="---"
     onmouseover="see_bubble("---.jpg');"
     onmouseout="kill_bubble()" onclick="kill_bubble()">texte</a><br>
    et ça ne va pas :
    1) au départ, l'image n'est pas en none mais en block .
    2) Quand je survole le texte, l'image se met au-dessus et le texte descend, alors que je voudrais que celui-ci ne bouge pas et maîtriser la position de l'apparition de l'image.

    @ Auteur : soit je n'ai pas compris, soit les exemples de rollover ne répondent pas à mon besoin.

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour, dans ce cas n'utilise pas display mais style.visibility = 'visible' et style.visibility = 'hidden';

    A+.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 698
    Points
    44 698
    Par défaut
    Bonjour,
    1) au départ, l'image n'est pas en none mais en block .
    un peu normal compte tenu de la déclaration non conforme de
    <img src="---.jpg" id="this_img" display="none" width="100">
    As tu tenu compte de la remarque de Bovino concernant onmouseover="see_bubble("---.jpg');"?

    2) Quand je survole le texte, l'image se met au-dessus et le texte descend
    inverses l'ordre dans le HTML , ou utilises la méthode donnée par andry.aime.

    On notera que tu peux réaliser cela en pure CSS
    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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>test</title>
    <style>
    a{
      position:relative;
    }
    a img{
      position:absolute;
      display:none;
      border:0;
      left:0;
      top:1em;
    }
    a:hover img{
      display:block;
    }
    </style>
    </head>
    <body>
    <p>
      <a href="#">andry.aime
        <img src="http://www.developpez.net/forums/avatars/191308-andry-aime.gif?dateline=1349181580" alt="avatar andry.aime"><br>
      </a>
    </p>
    <p>Omnes hoc potest fieri in puram CSS, iustus movere muris super link to videre avatar "andry.aime".</p>
    </body>
    </html>
    ...tiens tiens! cela ressemble à du rollover!

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci NoSmoking car grâce à toi, j'ai la solution :
    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
    <head>
      <meta content="text/html; charset=ISO-8859-1"
     http-equiv="content-type">
      <title>test</title>
      <script type="text/javascript">
    //-----------------------
    function see_bubble(img_){
    var Obj = document.getElementById('this_img');
    Obj.style.display = "block";
    }
    //--------------------
    function kill_bubble(){
    var Obj = document.getElementById('this_img');
    Obj.style.display = "none";
    }
      </script>
    </head>
    <body>
    <a href="---.jpg"
     onmouseover="see_bubble('---.jpg');"
     onmouseout="kill_bubble()">texte</a><br>
    <img src="---.jpg" id="this_img"
     style="margin-left:50px;display: none;" width="100"><br>
    </body>
    Pour la déclaration non conforme d'un style CSS, je n'avais pas fait attention qu'il s'agissait de cela.
    Même si tu proposes une solution de rollover, je souhaitais corriger mon script ; par contre une question sur ta solution : pourquoi le a en position relative et le a img en position absolute ?

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 698
    Points
    44 698
    Par défaut
    ...par contre une question sur ta solution : pourquoi le a en position relative et le a img en position absolute ?
    Tout élément en position:absolute est placé par rapport au premier de ses parents positionnés, ayant une déclaration position:absolute|relative|fixed.

    Dans ce cas l'IMG sera placée par rapport à la balise A parente.

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    D'accord ; du coup, je comprends bien a IMG en position absolute, mais pourquoi a en position relative ?

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 698
    Points
    44 698
    Par défaut
    dans le cas présent cela place l'IMG par rapport à la balise A qui EST POSITIONNEE, impression de déjà écrit !

    En absence de parent positionné on remonte jusqu'à l'élément HTML.

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Oui, c'est vrai, tu l'avais déjà dit :
    par rapport au premier de ses parents positionnés
    mais je n'avais pas fait attention...

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

Discussions similaires

  1. Mon image n'apparait pas sur le site
    Par zeiss dans le forum Débuter
    Réponses: 9
    Dernier message: 21/01/2009, 19h10
  2. [CSS] [FAQ] Pourquoi text-align ne fonctionne pas sur les éléments de type SPAN
    Par Lost In Translation dans le forum Contribuez
    Réponses: 1
    Dernier message: 11/12/2008, 10h30
  3. [Déploiement] Pourquoi mon application ne fonctionne pas sur tous les postes ?
    Par Willthelegend dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 08/09/2008, 20h34
  4. Pourquoi mon frame ne fonctionne pas sur Safari 3.0.4?
    Par joecool2005 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/02/2008, 17h36
  5. [JLabel][HTML]pourquoi mes images s'affiche pas?!
    Par La Truffe dans le forum Composants
    Réponses: 8
    Dernier message: 29/04/2004, 11h23

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