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 :

Programmation d'un tooltip


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut Programmation d'un tooltip
    Je commence à sérieusement désespérer...

    J'essaye de programmer un petit tooltip, le plus simple qui soit qui au survol d'un div (carré de 8px de côté) affiche donc un div en mode absolu pas loin du curseur.

    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
    function showInformations(e){
    	if (document.getElementById('overInfos').style)
    	{
    		document.getElementById('overInfos').style.left = e.clientX +'px';
    		document.getElementById('overInfos').style.top = e.clientY +'px';
    	} else {
    		document.getElementById('overInfos').left = e.clientX;
    		document.getElementById('overInfos').top = e.clientY;
    	}
     
    	document.getElementById('overInfos').innerHTML = "essai de ligne <br /><a href='vue2.php'>essai de lien</a><br />";
    	document.getElementById('overInfos').style.visibility = 'visible';
    }
     
     
    function hideInformations(){
    	document.getElementById('overInfos').innerHTML = '';
    	document.getElementById('overInfos').style.visibility = 'hidden';
    }
    Le code de mon Javascript, ensuite j'active l'evenement avec un onmouseover, mais si ça marche de manière impeccable sous IE, l'affichage a tendance à clignoter sous Firefox.

    Je me tire les cheveux, et ne trouve pas à quoi c'est du, j'ai essayé plusieurs possibilités, mais toujours le même problème.

    Je ne sais pas si quelqu'un a été confronté au problème, si oui, je suis preneur d'infos.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 285
    Par défaut
    Je ne sais pas si ca peut venir de la, mais pour mes "tooltip" J'utilise clientX et clientY pour IE seulement, et pageX et pageY pour les autres navigateurs

    j'ai pas de soucis d'affichage pour Firefox, mais un probleme de scrollTop sous IE (voir mon sujet un peu pas loin dans le forum :p )

  3. #3
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    J'ai essayé mais ça ne change rien.
    Firefox reconnait aussi bien l'un que l'autre apparemment...

  4. #4
    Membre averti
    aze
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : aze

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Par défaut
    Ah !
    Mon pote Firefox !!!
    Il y a de fortes chances que ces clignottements soient carrement des erreurs de rendu !
    J'utilise aussi des tooltip (via une librairie, j'ai rien fait à la main), c'est splendide sous IE mais tout moche (clignotement et position) sous firefox. Idem j'utilise des trucs un peu tangeants pour faire du scroll sur certains éléments : vraiment superbe sous IE et Safari mais avec des affichages doubles ou triple sous certaines versions de firefox et des clignotements... Et si on s'amuse a juste redimentionner la fenêtre pour le forcer à repeindre un coup, tout s'affiche correctement...

    Donc selon moi il n'y a pas vraiment de solution, mis à part croiser les doigts pour que le moteur de rendu se soit (beaucoup) amélioré avec la future v3... Dans la mesure ou tu ne fais rien d'illégal il n'est pas normal que le navigateur n'affiche pas ton truc correctement !!!

    Sinon tu peux toujours tester différentes méthodes de positionnement et d'affichage de tes bidules, il y en a certainement une qui passera mieux que les autres !

    Bon courage.

    PS : désolé pour le coup de gueule, moi aussi j'en ai un peu marre...

  5. #5
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    Ouais mais bon on peut y passer des plombes là dessus...

    Merci quand même pour l'info

  6. #6
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    http://demos.mootools.net/Tips

    If they can do it, everybody can

    Ps: Runs flawlessly under Firefox

  7. #7
    Membre averti
    aze
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : aze

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Par défaut
    Yep, mais ya besoin de mootools !
    Enfin, ça montre quand même que c'est possible !

  8. #8
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    Oui je crois qu'on s'égare un peu, le but était justement de faire quelque chose qui n'utilise aucune technologie sous une quelconque licence, je pense qu'il y a plus simple pour faire un tooltip que de taper directement dans un framework javascript.

    Bon je vais tâcher de faire des tests, je finirais bien par trouver un truc qui fonctionne.

  9. #9
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (document.getElementById('overInfos').style)
    {
    document.getElementById('overInfos').style.left = e.clientX +'px';
    document.getElementById('overInfos').style.top = e.clientY +'px';
    } 
    else 
    {
    document.getElementById('overInfos').left = e.clientX+"px";
    document.getElementById('overInfos').top = e.clientY+"px";
    }
    - précise les unités.

    - je le trouve un peu curieux ton test Pour savoir si tu es sous IE ou non, utilise document.all (seul IE le reconnait).

    - je pense que ton clignotement vient du fait que ton info-bulle s'affiche sous la souris : dans ce cas tu provoques un événement onmouseout sur l'élément donc ta bulle se cache (ta fonction hideInformations() est appelée), mais comme ta souris est toujours sur l'élement un onmouseover est déclenché (ta fonction showInformations() est appelée) ta bulle apparaît donc, mais comme ta bulle apparaît sous la souris tu provoques un événement onmouseout sur l'élément donc ta bulle se cache, etc.... . ton affichage clignote.

    Donc, ajoute 5 pixels à top et left pour décaler ta bulle du pointeur

  10. #10
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Citation Envoyé par scougirou
    Yep, mais ya besoin de mootools !
    Enfin, ça montre quand même que c'est possible !
    Citation Envoyé par Linio
    Oui je crois qu'on s'égare un peu, le but était justement de faire quelque chose qui n'utilise aucune technologie sous une quelconque licence, je pense qu'il y a plus simple pour faire un tooltip que de taper directement dans un framework javascript.

    Bon je vais tâcher de faire des tests, je finirais bien par trouver un truc qui fonctionne.
    C'est bien ce que j'ai dis, "si ils le font, tout le monde peut le faire"

  11. #11
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    Citation Envoyé par Auteur
    bonjour,

    - précise les unités.

    - je le trouve un peu curieux ton test Pour savoir si tu es sous IE ou non, utilise document.all (seul IE le reconnait).

    - je pense que ton clignotement vient du fait que ton info-bulle s'affiche sous la souris : dans ce cas tu provoques un événement onmouseout sur l'élément donc ta bulle se cache (ta fonction hideInformations() est appelée), mais comme ta souris est toujours sur l'élement un onmouseover est déclenché (ta fonction showInformations() est appelée) ta bulle apparaît donc, mais comme ta bulle apparaît sous la souris tu provoques un événement onmouseout sur l'élément donc ta bulle se cache, etc.... . ton affichage clignote.

    Donc, ajoute 5 pixels à top et left pour décaler ta bulle du pointeur
    Mon test est curieux parce que c'est le cinquième essai que j'ai picoré d'un site...

    Je réessayerais en vérifiant par rapport au navigator et en faisant ta méthode de décalage.

    Merci.

Discussions similaires

  1. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  4. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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