pb de positionnement bulle au survol en javascript

pb de positionnement bulle au survol en javascript - HTML/CSS - Programmation

Marsh Posté le 17-06-2007 à 22:11:23    

Bonjour,  
 
j'aimerais créer une bulle qui s'affiche au survol d'un lien, mais dans Firefox la bulle ne s'affiche pas en-dessous du lien mais tout en haut à gauche de ma page. dans IE je n'ai pas ce problème...  
 
Je ne connais pas grand-chose en javascript, je travaille d'après un script libre que j'ai trouvé sur un site de tutoriels.
 
le code que j'ai utilisé est:
 

Code :
  1. // PARAMETRES MODIFIABLES
  2. var delaiAffBull = 0
  3. var delaiAffStat = 900
  4. var autoEffBull = 900
  5. var delaiEffBull = 2000
  6. var delaiEffStat = 2000
  7. var DecalVertic = 16
  8. var DecalHoriz = 6
  9. var TailleText = 'font-size: 11px'
  10. var PolicText = 'Arial, Verdana'
  11. var CouleurTexte = '#494B5D'
  12. var CouleurFond = '#FDF1B0'
  13. var CouleurBord = '#786654'
  14. var CouleurOmbr = '#000000'
  15. // PARAMETRES A NE PAS MODIFIER
  16. var AffichBull=setTimeout('document.getElementById("infoBull" ).style.visibility = "visible";document.getElementById("ombrBull" ).style.visibility = "visible"',delaiAffBull);
  17. clearTimeout(AffichBull);
  18. var EffacBull=setTimeout('Vt=2;effacem()',delaiEffBull);
  19. clearTimeout(EffacBull);
  20. var EffacAutoBull=setTimeout('Vt=1;effacem();window.status=""',autoEffBull);
  21. clearTimeout(EffacAutoBull);
  22. var tempo=setTimeout('if(Vt==1)Opac=Opac-3;OpacOmbr=OpacOmbr-3;if(Vt==2)Opac=Opac-8;OpacOmbr=OpacOmbr-8;effacem()',Vitess/1000);
  23. clearTimeout(tempo);
  24. var AffStat=setTimeout('window.status=textBull',delaiAffStat);
  25. clearTimeout(AffStat);
  26. // DECLARATIONS
  27. var textBull = ''
  28. var Vitess = 1
  29. var Opac = 100
  30. var OpacOmbr = 20
  31. var Opac_2 = 10
  32. var Opac_2Ombr = .2
  33. var Vt = 0
  34. var EffB = 0
  35. var larg_ecran_B = 0
  36. var haut_ecran_B = 0
  37. var Long = 0
  38. var limiteH = 0
  39. var limiteV = 0
  40. var retourB = 0
  41. var PosHoriz = 0
  42. var PosVertic = 0
  43. var PosBullHoriz = 0
  44. var PosBullVerti = 0
  45. var scrollPag = 0
  46. var limiteBull = 0
  47. var ns4=document.layers?1:0
  48. var ie4=document.all?1:0
  49. var ns6=document.getElementById&&!document.all?1:0
  50. if(navigator.appName.substring(0,3) == "Net" )
  51. document.captureEvents(Event.MOUSEMOVE);
  52. document.onmousemove = get_mouse; // Capture de la position de la souris
  53. function get_mouse(e){ // Transfert de la position de la souris
  54. x = (navigator.appName.substring(0,3) == "Net" ) ? e.pageX : event.x+document.body.scrollLeft;
  55. y = (navigator.appName.substring(0,3) == "Net" ) ? e.pageY : event.y+document.body.scrollTop;
  56. PosBullHoriz = x;
  57. PosBullVerti = y;
  58. }
  59. function affichBulle(Bull){ // Affichage de la bulle
  60. larg_ecran_B = document.body.clientWidth; // Recadrage dans l'écran
  61. haut_ecran_B = document.body.clientHeight;
  62. scrollPag = document.body.scrollTop;
  63. if (ie4)Long = (Bull.length * (60 / 13)) + 26;
  64. if (ns6)Long = (Bull.length * (60 / 13)) + 50; // (50) A adapter selon de la police  
  65. limiteH = PosBullHoriz + Long + DecalHoriz;
  66. limiteV = scrollPag + haut_ecran_B;
  67. retourB = limiteH - larg_ecran_B;
  68. PosHoriz = PosBullHoriz + DecalHoriz;
  69. PosVertic = PosBullVerti + DecalVertic;
  70. limiteBull = PosBullVerti + 30;
  71. if (limiteH > larg_ecran_B)PosHoriz = PosHoriz - retourB;
  72. if (limiteBull > limiteV)PosVertic = PosVertic - 40;
  73. if (Bull == 0){ // Test de la présence du texte
  74. clearTimeout(AffichBull);
  75. clearTimeout(EffacAutoBull);
  76. clearTimeout(AffStat);
  77. EffacBull=setTimeout('Vt=2;effacem()',delaiEffBull);
  78. setTimeout('ChxLien=0',300);
  79. }
  80. else if (Bull != 0){var textBull = Bull; // Récuperation du texte
  81. if (document.getElementById){document.getElementById("infoBull" ).style.visibility = "hidden";document.getElementById("ombrBull" ).style.visibility = "hidden";}
  82. Opac = 100;OpacOmbr = 20
  83. var cadreBull = '<table border="1" cellpadding="0" cellspacing="0"'+ // Cadre de la bulle
  84. ' style="border:1px solid '+CouleurBord+'; border-collapse: collapse; font-family: '+PolicText+'; '+TailleText+'; color: '+CouleurTexte+'; margin-left: 8; filter: alpha(opacity='+Opac+'); -moz-opacity: '+Opac_2+'"><tr><td style="border-style:solid; border-width:1px; margin-left: 8;" bgcolor="'+CouleurFond+'" bordercolor="'+CouleurBord+'" Width=><nobr>&nbsp; '+textBull+' &nbsp;</nobr></td></tr></table>'
  85. var ombreBull = '<table border="0" cellpadding="0" cellspacing="0"'+ // Ombre de la bulle
  86. ' style="border:0px solid '+CouleurBord+'; border-collapse: collapse; font-family: '+PolicText+'; '+TailleText+'; color: '+CouleurTexte+'; margin-left: 8; filter: alpha(opacity='+OpacOmbr+'); -moz-opacity: '+Opac_2Ombr+'"><tr><td style="border-style:solid; border-width:0px; margin-left: 8;" bgcolor="'+CouleurOmbr+'" bordercolor="'+CouleurBord+'" Width=><nobr>&nbsp; '+textBull+'&nbsp;</nobr></td></tr></table>'
  87. if ((document.getElementById) && (document.getElementById("infoBull" ).style.visibility != "visible" )){
  88. document.getElementById("infoBull" ).innerHTML = cadreBull; // Affichage du cadre avec le texte  
  89. document.getElementById("ombrBull" ).innerHTML = ombreBull;
  90. AffichBull=setTimeout('document.getElementById("infoBull" ).style.visibility = "visible";document.getElementById("ombrBull" ).style.visibility = "visible"',delaiAffBull);
  91. document.getElementById("infoBull" ).style.top = PosVertic; // position verticale
  92. document.getElementById("infoBull" ).style.left = PosHoriz; // Position horizontale
  93. document.getElementById("ombrBull" ).style.top = PosVertic + 5; // position verticale
  94. document.getElementById("ombrBull" ).style.left = PosHoriz + 8; // Position horizontale
  95. EffacAutoBull=setTimeout('Vt=1;effacem();window.status=""',autoEffBull);
  96. clearTimeout(EffacBull);
  97. }
  98. }
  99. afftextStat(Bull); // Transfert du texte pour la barre de status
  100. }
  101. function afftextStat(text){ // Affichage du texte de la barre de status
  102. if(text != 0){textBull = text;
  103. AffStat=setTimeout('window.status=textBull',delaiAffStat)}
  104. else {setTimeout("window.status=''",delaiEffStat)}
  105. }
  106. function effacem(){
  107. var cadreBull = '<table border="1" cellpadding="0" cellspacing="0"'+ // Cadre de la bulle
  108. ' style="border:1px solid '+CouleurBord+'; border-collapse: collapse; font-family: '+PolicText+'; '+TailleText+'; color: '+CouleurTexte+'; margin-left: 8; filter: alpha(opacity='+Opac+'); -moz-opacity: '+Opac_2+'"><tr><td style="border-style:solid; border-width:1px; margin-left: 8;" bgcolor="'+CouleurFond+'" bordercolor="'+CouleurBord+'" Width=><nobr>&nbsp; '+textBull+' &nbsp;</nobr></td></tr></table>'
  109. var ombreBull = '<table border="0" cellpadding="0" cellspacing="0"'+ // Ombre de la bulle
  110. ' style="border:0px solid '+CouleurBord+'; border-collapse: collapse; font-family: '+PolicText+'; '+TailleText+'; color: '+CouleurTexte+'; margin-left: 8; filter: alpha(opacity='+OpacOmbr+'); -moz-opacity: '+Opac_2Ombr+'"><tr><td style="border-style:solid; border-width:0px; margin-left: 8;" bgcolor="'+CouleurOmbr+'" bordercolor="'+CouleurBord+'" Width=><nobr>&nbsp; '+textBull+'&nbsp;</nobr></td></tr></table>'
  111. document.getElementById("infoBull" ).innerHTML = cadreBull
  112. document.getElementById("ombrBull" ).innerHTML = ombreBull
  113. if (ie4) tempo=setTimeout('if(Vt==1)Opac=Opac-3;OpacOmbr=OpacOmbr-3;if(Vt==2)Opac=Opac-8;OpacOmbr=OpacOmbr-8;effacem()',Vitess/1000)
  114. else {document.getElementById("infoBull" ).innerHTML = "";document.getElementById("ombrBull" ).innerHTML = "";} // A vous d'adapter l'éffacement en douceur pour Netscape, Firefox, etc...
  115. if (Opac <= 0) {
  116. clearTimeout(tempo)
  117. document.getElementById("infoBull" ).innerHTML = ""
  118. document.getElementById("ombrBull" ).innerHTML = ""
  119. }
  120. }
  121. document.write('<DIV id=infoBull STYLE="position: absolute;z-Index:10"></DIV><DIV id=ombrBull STYLE="position: absolute;z-Index:9"></DIV>')


 
dans un fichier à part, et <div id="mberger">
<h3><a style="cursor:pointer" onMouseOver="affichBulle('Qui je suis...');return(true)" onMouseOut="affichBulle(0)" onClick="affichBulle(0)" href="mberger.html">Mich&egrave;le Berger | Psychologue Industriel</a></h3>
</div> dans ma page Html.  
 
Pourriez-vous m'aider? Où est-ce que je dois changer des paramètres?  
 
Merci!


Message édité par li-li le 18-06-2007 à 13:02:55
Reply

Marsh Posté le 17-06-2007 à 22:11:23   

Reply

Sujets relatifs:

Leave a Replay

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