Infobulle sur champ texte
Voici un sujet de forum trouvé sur un autre site :
Code:
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
| Bonjour
Je souhaiterais quelques infos sur le pb suivant
j ai un petit script trouvé sur le net ( je n ai plus l url ) qui permet d afficher une info bulle dans toute balise supportant l evenement onmouseover
il fonctionne parfaitement toutefois lorsque sous la balise est placé un champ forumaire liste ce champ s affiche par dessu la bulle alors que le pb n existe pas avec un champ texte ou tout autre chose ( image texte)
a quoi est-ce du a votre avis et pourrait on y remedier.
pourinfo le code est le suivant
( le tout est mis dans une variable $page pour un echo $page en php )
$page .="<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; // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
i=true;
}
}
function cache() {
if(i==true) {
GetId(\"curseur\").style.visibility=\"hidden\"; // Si la bulle etais visible on la cache
i=false;
}
}
document.onmousemove=move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
//-->
</script>"; |
La réponse était que c'est un bug connu d'IE et que le seul moyen était de faire disparaitre le select quand l'infobulle apparait.
Pas très élégant.
J'ai donc deux questions :
- Quelqu'un a t il une autre solution?
- Plus important : J'ai le même souci quand l'infobulle passe dessus un champ texte sur lequel on a le focus. L'infobulle passe sous le curseur de saisie de texte (le | qui clignote). Y a t il une solution qutre qu'enlever le focus du champs?
Merci d'avance.
Cordialement.
Sourivore.