Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de position du curseur

Pour une infobulle qui suis la souris

    13 février 2011 à 20:34:26

    Bonjour

    J'ai un code qui n'est pas de moi mais de Damien Alexandre destiné à créer une infobulle qui suis la souris.

    Le code :

    <script language="javascript" type="text/javascript">
    <!--
    function GetId(id)
    {
    return document.getElementById(id);
    }
    var i=false; // La variable i nous dit si la bulle est visible ou non
     
    function move(e) {
      if(i) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
        if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
        GetId("curseur").style.left=e.pageX + 5+"px";
        GetId("curseur").style.top=e.pageY + 10+"px";
        }
        else { // Modif proposé par TeDeum, merci à  lui
        if(document.documentElement.clientWidth>0) {
    GetId("curseur").style.left=20+event.x+document.documentElement.scrollLeft+"px";
    GetId("curseur").style.top=10+event.y+document.documentElement.scrollTop+"px";
        } else {
    GetId("curseur").style.left=20+event.x+document.body.scrollLeft+"px";
    GetId("curseur").style.top=10+event.y+document.body.scrollTop+"px";
             }
        }
      }
    }
     
    function montre(text) {
      if(i==false) {
      GetId("curseur").style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
      GetId("curseur").innerHTML = text; // on copie notre texte dans l'élément html
      i=true;
      }
    }
    function cache() {
    if(i==true) {
    GetId("curseur").style.visibility="hidden"; // Si la bulle est visible on la cache
    i=false;
    }
    }
    document.onmousemove=move; // dès que la souris bouge, on appelle la fonction move pour mettre à jour la position de la bulle.
    //-->
    </script>
    


    Donc (Tous les navigateurs testés sont à jours)

    Internet explorer est le seul qui marche correctement pour une fois, pour tous les autres testés (Firefox, Opera, Safari et Chrome), la bulle est décalé d'au moins 300 px sur la droite (mais elle suis quand même la souris), pas de décalage en hauteur.

    Si j'applique le code pour IE à tous les nav, cela ne marche pas, j'en déduis que c'est a cause des attribut scrolleft et scrolltop qui sont propriétaires.

    Enfin bon si vous avez la solution, merci d'avance.

    Edit : J'ai oublié de préciser que j'ai partiellement résolu le problème en ajoutant des valeurs négatives au positionnement de la bulle, mais bon c'est pas très propre.
    • Partager sur Facebook
    • Partager sur Twitter

    Problème de position du curseur

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown