tempo affichage infobulle

tempo affichage infobulle - HTML/CSS - Programmation

Marsh Posté le 22-05-2007 à 10:55:49    

Bonjour,
j'ai un script qui me permet d'afficher une fausse popup lors du passage de la souris sur des éléments déterminés.
Ce n'est pas moi qui ai réalisé ce script, je l'ai trouvé sur le net.
Je voudrais le modifier pour faire en sorte que mon infobulle s'affiche uniquement lorsque la souris marque un passage "prolongé" sur mon lien... 2 secondes par exemple.
 
Voici mon code javascript:

Code :
  1. <!--//Michel DEBOOM 06/2005
  2. gk=window.Event?1:0; // navigateurs Gecko ou IE
  3. D=document;popup=encours=0
  4. function ctrl(e)
  5. {
  6. de=!D.documentElement.clientWidth?D.body:D.documentElement // IE6
  7. sx=gk?pageXOffset:de.scrollLeft //scroll h
  8. sy=gk?pageYOffset:de.scrollTop //scroll v
  9. x=gk?e.pageX:event.clientX+sx; //curseur x
  10. y=gk?e.pageY:event.clientY+sy; //curseur y
  11. el=gk?e.target:event.srcElement;
  12. if(!el.tagName)el=el.parentNode; // noeud #text
  13. if(el.className == 'pop')
  14.   {
  15.   popup = D.getElementById(el.href.substring(el.href.lastIndexOf('#') + 1)).style;
  16.   if(popup!=encours) // seulement si changement   
  17.     {
  18.     encours.display='none';
  19.     with(popup){display="block";left=x+'px';top=y+10+'px';}
  20.     encours=popup;
  21.     }
  22.   } else {encours.display='none';encours=0}
  23. }
  24. D.onmousemove=ctrl
  25. // charge la feuille de style des popups.
  26. D.write('<style type="text/css">@import url(popup.css);</style>')
  27. //-->


 
Et voici comment est défini un élément sur le passage duquel ma popu va s'afficher:

Code :
  1. <a href="#pop1" class="pop"> Test d'affichage</a>


 
Enfin a la fin de ma page, je place le contenu de mon infobulle (qui bien sur n'est pas présent a l'écran tant que ma souris ne survole pas le lien):

Code :
  1. <div id="pop1">
  2. <h1>Infobulle</h1>
  3. <p>Ceci est mon infobulle</p>
  4. </div>


 
 
Je souhaite donc modifier mon code afin qu'il y ai  une tempo de 2 secondes avant que l'infobulle s'affiche.
j'ai essayé d'utiliser setTimeout mais sans succès (peut être mal utiliser de ma part)
 
Merci d'avance

Reply

Marsh Posté le 22-05-2007 à 10:55:49   

Reply

Marsh Posté le 22-05-2007 à 13:44:02    

J'ai voulu testé ton code dans un premier temps mais sous FF ça ne donne rien du tout, et sous IE6 la ligne  

Code :
  1. de=!D.documentElement.clientWidth?D.body:.documentElement // IE6


 
n'est pas appréciée par le debugger :)

Reply

Marsh Posté le 24-05-2007 à 10:04:11    

UP :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed