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 :

Surlignage par passage de souris


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Par défaut Surlignage par passage de souris
    Bonjour,

    Je suis débutante en javascript donc soyez tolérants d'il vous plait

    Ma page est composée de deux division. La première contient un tableau avec des mot clés tandis que la seconde contient un texte (ce dernier contenant les mots clés en question).

    Je souhaite que lorsque je passe la souris sur un mot clé du tableau, ledit mot clé soit surligné dans le texte.

    J'ai déjà trouvé du code qui me semble exploitable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function surbrillance(ou,quoi){
    	var StrReg="("+quoi+")";
    	var Reg=new RegExp((StrReg),"gi")
    	ou.innerHTML= ou.innerHTML.replace(Reg,'<span style="background-color:#53C5FE;">$1</span>')
    }
    Le problème, c'est que je ne sais pas comment écrire qu'il ne faut surligner le mot contenu dans la balise td (id=tableMot) dans le texte contenu dans une division (id=texteDoc) seulement au passage de la souris sur la balise td citée ci-dessus.

    Voilà, j'espère m'être exprimée clairement. Merci !

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Admettons que ton tableau de mot clef ressemble à ça :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <table>
      <tr><td>mot clef 1</td></tr>
      <tr><td>mot clef 2</td></tr>
    </table>

    Il sufft dans ce cas de rajouter un appel vers ta fonction surbrillance (qu'il faudra un peu modifier) dans un événement onmouseover :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <table>
      <tr><td onmouseover="surbrillance('mot_clef_1')">mot_clef_1</td></tr>
      <tr><td onmouseover="surbrillance('mot_clef_2')">mot_clef_2</td></tr>
    </table>

    Par contre on ne peut pas lui passer l'argument "ou" de ta fonction surbrillance, il faudra que tu te débrouilles pour le récupérer autrement (on peut passer en argument un ID par exemple).

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Par défaut
    Merci beaucoup a tout les deux =)

    J'ai rencontré un second bug, je test ce que vous m'avez dis dés que j'ai finis !

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Par défaut
    Impeccable !! ='D

    Merci beaucoup, ça marche du tonnerre !! Bonne journée !!

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 56
    Par défaut
    Merci, à vrai dire j'ai un dernier petit problème mais je ne sais pas si on peut y faire grand chose... FireFox ne supporte visiblement pas la fonction javascript (c'est moche à dire mais ça marche sous IE...) ^^"

  7. #7
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <table id="motsCles">
      <tr><td>mot_clef_1</td></tr>
      <tr><td>mot_clef_2</td></tr>
    </table>
     
    <p id="texte">
    Texte avec mot_clef_1 à surligner
    </p>

    Code js : 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
    var motsCles = document.querySelectorAll("#motsCles td");
    var texte = document.getElementById("texte");
    var texteInitial = texte.innerHTML;
     
    for(var m=0; m<motsCles.length; m++){
        (function(motCle){
                motCle.addEventListener("mouseover", function(){
                   surbrillance(texte, motCle.innerText);
                });
                 motCle.addEventListener("mouseout", function(){
                   texte.innerHTML = texteInitial;
                });
        })(motsCles[m]);
    }
     
    function surbrillance(ou,quoi){
    	var StrReg="("+quoi+")";
    	var Reg=new RegExp((StrReg),"gi")
    	ou.innerHTML= ou.innerHTML.replace(Reg,'<span style="background-color:#53C5FE;">$1</span>')
    }

    Code non testé, mais l'idée est là.

    edit: testé et débuggé :
    http://jsfiddle.net/2ANhQ/

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/02/2007, 22h11
  2. [IMAGE] changement d'image lors d'un passage de souris
    Par gailup dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 02/06/2006, 10h18
  3. [MySQL] mise à jour de champs par passage de paramètre
    Par cams dans le forum PHP & Base de données
    Réponses: 31
    Dernier message: 02/12/2005, 15h20
  4. Masquer une forme lors du passage de souris
    Par gilles641 dans le forum Langage
    Réponses: 7
    Dernier message: 15/07/2005, 17h07
  5. Selection par clic de souris
    Par bilbonec dans le forum OpenGL
    Réponses: 7
    Dernier message: 16/04/2004, 00h25

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