Rechercher : dans
Par :

Programmation HTML et infobulles avec Firefox

Elf Lord, le 3 jui 2009 à 23:10:22 
 Signaler ce message aux modérateurs

Bonsoir,
Je vous sollicite une fois de plus car je souhaite créer une page web dans laquelle j'ai une image et un bout de texte qui vont ensemble ...
Je souhaiterais qu'au survol de l'image, une autre prenne sa place, ça je maitrise ...
Par contre, je voudrais qu'une "info-bulle" s'affiche quand on survol le texte, là problème, le javascript que j'ai trouvé ne fonctionne que sous IE et pas sur Firefox...

Voici mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>

<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
var IB=new Object;
var posX=0;posY=0;
var xOffset=10;yOffset=10;
function AffBulle(texte) {
contenu="<TABLE border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><TR bgcolor='"+IB.ColContour+"'><TD><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><TR><TD><FONT size='-1' face='arial' color='"+IB.ColTexte+"'>"+texte+"</FONT></TD></TR></TABLE></TD></TR></TABLE> ";
var finalPosX=posX-xOffset;
if (finalPosX<0) finalPosX=0;
if (document.layers) {
document.layers["bulle"].document.write(contenu);
document.layers["bulle"].document.close();
document.layers["bulle"].top=posY+yOffset;
document.layers["bulle"].left=finalPosX;
document.layers["bulle"].visibility="show";}
if (document.all) {
//var f=window.event;
//doc=document.body.scrollTop;
bulle.innerHTML=contenu;
document.all["bulle"].style.top=posY+yOffset;
document.all["bulle"].style.left=finalPosX;//f.x-xOffset;
document.all["bulle"].style.visibility="visible";
}
//modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
else if (document.getElementById) {
document.getElementById("bulle").innerHTML=contenu;
document.getElementById("bulle").style.top=posY+yOffset;
document.getElementById("bulle").style.left=finalPosX;
document.getElementById("bulle").style.visibility="visible";
}
}
function getMousePos(e) {
if (document.all) {
posX=event.x+document.body.scrollLeft; //modifs CL 09/2001 - IE : regrouper l'évènement
posY=event.y+document.body.scrollTop;
}
else {
posX=e.pageX; //modifs CL 09/2001 - NS6 : celui-ci ne supporte pas e.x et e.y
posY=e.pageY;
}
}
function HideBulle() {
if (document.layers) {document.layers["bulle"].visibility="hide";}
if (document.all) {document.all["bulle"].style.visibility="hidden";}
else if (document.getElementById){document.getElementById("bulle").style.visibility="hidden";}
}

function InitBulle(ColTexte,ColFond,ColContour,NbPixel) {
IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
if (document.layers) {
window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
document.write("<LAYER name='bulle' top=0 left=0 visibility='hide'></LAYER>");
}
if (document.all) {
document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
document.onmousemove=getMousePos;
}
//modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
else if (document.getElementById) {
document.onmousemove=getMousePos;
document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
}

}
</SCRIPT>
</head>

<body onload="MM_preloadImages('planet_on.png')">
<SCRIPT language="JavaScript">InitBulle("#blanc","#0a0c28","blanc",1);</SCRIPT>
<a onMouseOver="AffBulle('L'info-bulle ...')" onMouseOut="HideBulle()" />Le texte</a> <br /> <a href="javascript:;" onMouseOver="document.Planet.src='planet_on.png';" onMouseOut="document.Planet.src='planet_off.png';"><img src="planet_off.png" alt="Planet" name="Planet" width="173" height="62" border="0" id="Planet" /></a>
</body>
</html>

-------------------------------

Voilà, j'ai un peu abrégé le code pour ne garder que la partie qui pose problème ...
Si vous avez une idée ...

Merci d'avance,

Elf Lord ...

PS: J'ai trouvé le code pour l'infobulle sur CCM ...

Configuration: Processeur Intel Quad Core Q9400
CG Ati Radeon HD 4830
Windows Seven (RC)
Mozilla Firefox

Meilleures réponses pour « Programmation HTML et infobulles avec Firefox » dans :
[MacOS] FireFox -- tabulation et formulaire VoirAvec FireFox sous MacOS (problème rencontré sour MacOsX Panther & Tiger / FireFox toutes versions) la navigation dans un formulaire web avec la touche [tab] peut réserver quelques surprises. Par défaut, la tabulation ne permet de se déplacer que de...
[Programmation] Comment débuter, quel langage? VoirComment débuter, quel langage? Introduction Ceux que l'on peut utiliser Delphi/Pascal Java Python .Net Smalltalk Ceux que l'on peut utiliser à la rigueur C/C++ PHP Ada Lisp/Caml/... Ceux que l'on peut ne pas utiliser
Gestion des images en HTML VoirComment afficher des images sur une page web? Quelques images sur un site Web peuvent le rendre plus attractif et plus convivial, cependant il est important de ne pas sombrer dans l'excès car les images peuvent impliquer un temps de chargement...