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

HTML Discussion :

Infobulle, HTML et JavaScript


Sujet :

HTML

  1. #1
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2014
    Messages : 35
    Par défaut Infobulle, HTML et JavaScript
    Bonjour.

    J'ai un problème avec un code assez simple pour afficher une ligne de texte quand je passe la souris sur un élément d'un menu. chaque élément de menu est une image ou un texte. Mais cela fonctionne sur deux ou trois éléments seulement.
    Voici déjà le code.

    Code javascript : 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
      // Fichier js
     
     function changetext(id,choix)
          {
            if(choix==1){
             area = document.getElementById(id);
             area.innerHTML="Historique du roman au gothique flamboyant, St Nizier, galerie de photos...";
    *        }
            if(choix==2){
             area = document.getElementById(id);
             area.innerHTML="Les personnages qui ont marqués l'histoire de l'église St-Nizier...";
            *}
            if(choix==3){
             area = document.getElementById(id);
             area.innerHTML="La structure de l'association, son fonctionnement, ses adérents...";
             }
            if(choix==4){
             area = document.getElementById(id);
             area.innerHTML="Les activités de l'association, visites, conférences, concerts...";
    *        }
            if(choix==5){
             area = document.getElementById(id);
             area.innerHTML="Les projets de restauration de l'église, des statues, des tableaux...";
            *}
            if(choix==6){
             area = document.getElementById(id);
             area.innerHTML="Appel de dons et de partenariat particuliers, entreprises, universités...";
             }
            if(choix==7){
             area = document.getElementById(id);
             area.innerHTML="";
             }
           }
    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
    <!DOCTYPE html>
    <html>
      <head>
        <meta content="text/html; charset=windows-1252" http-equiv="content-type">
     
      <script src="js/Infos_Bulle.js" type="text/javascript"></script>
     <title></title>
      </head>
      <body>
        <p><br>
     
          <a href="Index.html"><img this src="Accueil01.jpg"></a>
          <a href="Eglise.html"onmouseover="changetext('txt',1)"onmouseout="changetext('txt',7)"><img this src="Eglise00.jpg"></a>
          <a href="Personnages_Importants.html"onmouseover="changetext('txt',2)"onmouseout="changetext('txt',7)"><img this src="Personnages00.jpg"></a>
          <a href="Association.html"onmouseover="changetext('txt',3)"onmouseout="changetext('txt',7)"><img this src="Association00.jpg"></a>
          <a href="Activites.html"onmouseover="changetext('txt',4)"onmouseout="changetext('txt',7)"><img this src="Activites00.jpg"></a>
          <a href="Projets.html"onmouseover="changetext('txt',5)"onmouseout="changetext('txt',7)"><img this src="Projets00.jpg"></a>
          <a href="Activites.html"onmouseover="changetext('txt',6)"onmouseout="changetext('txt',7)"><img this src="Aidez_nous00.jpg"></a>
        </p>
        <span id="txt" style="position:absolute; left:263px; top:0px; width:600px; height:186px; z-index:5; visibility: visible">
     
        </span>
      </body>
    </html>

    Etrangement, si chaque ligne (<a.....>......</a>) est séparée par des balises <p></p>, tout fonctionne. Mais ce n'est pas ce que je veux bien sur.
    J'en conclus que le nombre d'instructions par bloc à gérer pour le navigateur est trop important.

    Quelqu'un aurait il une idées.
    Merci.

  2. #2
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut
    Bonjour. Pourquoi ne pas utiliser l'attribut title pour une infobulle sur un lien?

  3. #3
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2014
    Messages : 35
    Par défaut Ca ne me convient pas.
    Bonjour.


    Title ne convient pas : Trop petit et trop lent.

    Le code que j'ai montré convient parfaitement à mon application, mis à part le problème rencontré bien sur.

  4. #4
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut
    j'avais regardé ton code en diagonale, je n'avais pas vu qu'il y a des trucs qui vont pas dedans....

    dans ton js tu as des étoiles qui se baladent ligne 8, 12, 20, 24 déjà, vire les ça ira mieux.
    pour tes images tu as un attribut "this" ? ça n'existe pas... et tu devrais mettre des espaces entre tes attributs pour faciliter la lecture

    une fois ces erreurs corrigées ça fonctionne, je l'ai testé

  5. #5
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2014
    Messages : 35
    Par défaut Merci, mais...
    Bon soir.

    Les étoiles dans le js, je ne sais pas d'où elle viennent.

    Les (this) sont le résulta d'un ultime essai. Je les ai viré, mais il n'y a rien de mieux.
    Cela marche chez toi ... Mystère. quand aux espaces, je ne vois pas !

  6. #6
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    quand aux espaces, je ne vois pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="Eglise.html"onmouseover="changetext('txt',1)"onmouseout="changetext('txt',7)"><img this src="Eglise00.jpg"></a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="Eglise.html" onmouseover="changetext('txt',1);" onmouseout="changetext('txt',7);"><img this src="Eglise00.jpg"></a>
    pour ma part le code en question marche sur FF et ie10, donc tu test avec quoi de ton côté?
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  7. #7
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut
    moi je l'ai testé avec chrome 37 et opera 12

  8. #8
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2014
    Messages : 35
    Par défaut Précision.
    J'ai le même résultat sous IE11 et Firefox 29.0.1

    Je précise que le code présente 6 éléments de menu. Le pointeur souris apparait avec la main seulement sur les trois premiers éléments, ainsi que le message -infobulle-

    Si chaque ligne est suivie d'un retour chariot <br> 6 éléments fonctionnent. également si chaque élément est entre la balise <p>..</p>

    C'est un peu comme si la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <a href="Index.html"><img src="Accueil01.jpg"></a>
          <a href="Eglise.html"onmouseover="changetext('txt',1)"onmouseout="changetext('txt',7)"><img src="Eglise00.jpg"></a>
          <a href="Personnages_Importants.html"onmouseover="changetext('txt',2)"onmouseout="changetext('txt',7)"><img src="Personnages00.jpg"></a>
          <a href="Association.html"onmouseover="changetext('txt',3)"onmouseout="changetext('txt',7)"><img src="Association00.jpg"></a>
          <a href="Activites.html"onmouseover="changetext('txt',4)"onmouseout="changetext('txt',7)"><img src="Activites00.jpg"></a>
          <a href="Projets.html"onmouseover="changetext('txt',5)"onmouseout="changetext('txt',7)"><img src="Projets00.jpg"></a>
          <a href="Activites.html"onmouseover="changetext('txt',6)"onmouseout="changetext('txt',7)"><img src="Aidez_nous00.jpg"></a>
    était trop longue pour l'interpréteur du navigateur.

    Etrange non ? et dommage car cela permettrait un model de menu plutôt simple à réaliser, avec des commentaires facile à changer pour plusieur pages présentant le même menu.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 145
    Par défaut
    C'est résolu ou pas ?

    Chez moi, ça marche parfaitement...

  10. #10
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut
    dans la console javascript du navigateur tu as des erreurs ?
    pour ie : menu Outils > Outils de développement
    pour firefox : menu Firefox > Développement web > Console Web et Console d'erreurs

  11. #11
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2014
    Messages : 35
    Par défaut Aucune erreur
    Non ! Aucune erreur signalée.

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    le code que tu as mis marche même si ce n'est pas un exemple du genre

    Ce genre de manipulation ce fait de nos jours en CSS pur.

    Pour en revenir à ton soucis
    - Testes tu avec le même code que celui que tu as fourni ?
    - Es tu sûr qu'il n'y a pas un élément au dessus de tes images non accessibles par le mouseover ?

  13. #13
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2014
    Messages : 35
    Par défaut Limite html
    Bonjour

    Je voudrais bien le faire en CSS mais cela m'échappe totalement. J'ai choisi ce code après de longues recherches, je le trouve simple à appliquer et, je peux changer les textes de commentaires (infobulle) de toutes les pages en une fois.

    J'ai fait un test avec Goooglechrome, j'ai le même résultat.

    Oui le code que j'ai communiqué est celui que je teste.
    Il n'y a pas d'élément au dessus des images de menu.

    Si chaque ligne est suivie d'un retour chariot <br> tout fonctionne parfaitement mais cela donne un menu vertical. C'est pas ce que je veux hélas.

    J'ai un essai avec des images plus grande 400x400 (les éléments de menu font 120x25) cela fonctionne presque bien. C'est comme si le navigateur avait du mal à repérer le pointeur de la souris. Précision : Si je remplace les images représentant le menu par du texte, cela ne fonctionne pas mieux, le navigateur repère les deux ou trois premier éléments.

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Ajoutes dans le CSS de ta page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    span{
      background:#FEE;
    }
    p{
      background:#EEF;
    }
    et observe ce qui se passe, n'oublie pas que ton SPAN de départ possède une height:186px.

  15. #15
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2014
    Messages : 35
    Par défaut Super
    Mille merci NoSmoking.

    Effectivement en réduisant la hauteur de l'affichage qui devait empiéter sur la zone de menu, cela fonctionne.
    height:186px ---> height:30px

    Tu me diras : Il suffisait d'y penser....

    Mon problème est résolu.

  16. #16
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Effectivement en réduisant la hauteur de l'affichage qui devait empiéter sur la zone de menu, cela fonctionne.
    height:186px ---> height:30px
    tu n'as pas obligation de déclarer une hauteur.

    Pour ce qui est d'un code plus "propre"
    Code javascript : 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
    function changetext(id,choix){
        var msg = [
    /*0*/    "",
    /*1*/    "Historique du roman au gothique flamboyant, St Nizier, galerie de photos...",
    /*2*/    "Les personnages qui ont marqués l'histoire de l'église St-Nizier...",
    /*3*/    "La structure de l'association, son fonctionnement, ses adérents...",
    /*4*/    "Les activités de l'association, visites, conférences, concerts...",
    /*5*/    "Les projets de restauration de l'église, des statues, des tableaux...",
    /*6*/    "Appel de dons et de partenariat particuliers, entreprises, universités...",
    /*7*/    ""
        ];
        // si le message existe
        if( msg[choix] != undefined){
          var oSpan = document.getElementById(id);
          oSpan.innerHTML = msg[choix];
        }
    }
    et pour une version en pur 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>CSS Hover</title>
    <style>
    html, body{
      margin:0;
      padding:0;
      font: 1em/1.5 Verdana, sans-serif;
    }
    #nav{
      margin: 2em;
    }
    a, a img{
      border:0;
      text-decoration:none;
    }
    a span{
      position:absolute;
      top:0;
      left:12em;
      display:none;
      padding:0.5em;
      color:#000;
    }
    a:hover span{
      display:block;
    }
    </style>
    </head>
    <body>
      <div id="nav">
        <a href="Index.html">
          <img src="Accueil01.jpg" alt="Accueil">
        </a>
        <a href="Eglise.html">
          <img src="Eglise00.jpg" alt="Eglise">
          <span>Historique du roman au gothique flamboyant, St Nizier, galerie de photos...</span>
        </a>
        <a href="Personnages_Importants.html">
          <img src="Personnages00.jpg" alt="Personnage">
          <span>Les personnages qui ont marqués l'histoire de l'église St-Nizier...</span>
        </a>
        <a href="Association.html">
          <img src="Association00.jpg" alt="Association">
          <span>La structure de l'association, son fonctionnement, ses adérents...</span>
        </a>
        <a href="Activites.html">
          <img src="Activites00.jpg" alt="Activité">
          <span>Les activités de l'association, visites, conférences, concerts...</span>
        </a>
        <a href="Projets.html">
          <img src="Projets00.jpg" alt="Projets">
          <span>Les projets de restauration de l'église, des statues, des tableaux...</span>
        </a>
        <a href="Activites.html">
          <img src="Aidez_nous00.jpg" alt="Aidez nous">
          <span>Appel de dons et de partenariat particuliers, entreprises, universités...</span>
        </a>
      </div>
    </body>
    </html>
    Je te laisse analyser.

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

Discussions similaires

  1. Insertion code html avec javascript
    Par totoranky dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/02/2006, 16h04
  2. Réponses: 3
    Dernier message: 28/12/2005, 15h29
  3. Faire des onglet en HTML (ou javascript ou autre..)
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/09/2005, 16h17
  4. Prob de séparation du code html et javascript
    Par tsyfar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/08/2005, 10h09

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