Bonjour,
je souhaite utiliser des info bulles sur des liens ou images sur ma page web.
Pour ce faire, j'utilise le code trouvé ici : http://www.toutjavascript.com/main/gorun.php3?s=infobulle
e code repond vraiment a toutes mes attentes, mais j'ai un problème car il fonctionne mal dès que je déclare un DOCTYPE en haut de ma page; voici ceux que j'ai essayé :
Dès que je déclare un DOCTYPE, les infos bulles sont mal placées. Je m'explique :
- sous Firefox, elles sont forcément en haut à gauche
- sous IE, elles ne prennent pas en compte la position de l'ascenceur vértical et donc de la page....
....alors que sans DOCTYPE, tout marche nickel sous IE et Firefox.
Est ce quelqu'un peut m'aider en me donnant le DOCTYPE à utiliser ou alors la partie du code javascript a modifier?
Merci d'avance
je souhaite utiliser des info bulles sur des liens ou images sur ma page web.
Pour ce faire, j'utilise le code trouvé ici : http://www.toutjavascript.com/main/gorun.php3?s=infobulle
<HTML>
<HEAD>
<TITLE>Tout JavaScript.com - Info Bulle DHTML</TITLE>
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
//D'autres scripts sur http://www.toutjavascript.com
//Si vous utilisez ce script, merci de m'avertir ! < webmaster@toutjavascript.com >
//Auteur original :Olivier Hondermarck <webmaster@toutjavascript.com>
//Modifs compatibilité Netscape 6/Mozilla : Cédric Lamalle 09/2001 <cedric@cpac.embrapa.br>
//Correction Mac IE5 (Merci Fred)
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 bgcolor="#FFFFFF" text="#FFFFFF" alink="#000066" link="#000066" vlink="#000066" >
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<!-- appel à l'initialisation des infos bulles (laisser dans le BODY) -->
<SCRIPT language="JavaScript">InitBulle("navy","#FFCC66","orange",1);
// InitBulle(couleur de texte, couleur de fond, couleur de contour taille contour)
</SCRIPT>
<A href="#" onMouseOver="AffBulle('Info bulle du premier lien')" onMouseOut="HideBulle()">Premier Lien ----------------------------------------------------</A><BR>
<A href="#" onMouseOver="AffBulle('Ce script permet d\'afficher des infos bulles très <BIG>simplement</BIG>,<BR> sur <I>plusieurs</I> lignes,<BR>avec des éléments HTML. ')" onMouseOut="HideBulle()">Deuxieme Lien</A><BR>
<A href="#" onMouseOver="AffBulle('Autant d\'infos bulles que vous voulez ...')" onMouseOut="HideBulle()">Autre Lien</A>
<BR><a href="#" onMouseOver="AffBulle('<b>Règles de validation :</b><br> Prénom doit être une chaine de caractères')" onMouseOut="HideBulle()">toto</a><BR>
<A href="http://www.toutjavascript.com" onMouseOver="AffBulle('ToutJavaScript.com c\'est :<LI>des dizaines de javascripts,<LI>des conseils,<LI>des liens.<BR><CENTER><B>Et bien plus encore...</B><BR><IMG src=\'http://www.toutjavascript.com/gif/animtjs.gif\' width=100 height=30></CENTER>')" onMouseOut="HideBulle()">www.ToutJavaScript.com</A>
</BODY></HTML>
e code repond vraiment a toutes mes attentes, mais j'ai un problème car il fonctionne mal dès que je déclare un DOCTYPE en haut de ma page; voici ceux que j'ai essayé :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Dès que je déclare un DOCTYPE, les infos bulles sont mal placées. Je m'explique :
- sous Firefox, elles sont forcément en haut à gauche
- sous IE, elles ne prennent pas en compte la position de l'ascenceur vértical et donc de la page....
....alors que sans DOCTYPE, tout marche nickel sous IE et Firefox.
Est ce quelqu'un peut m'aider en me donnant le DOCTYPE à utiliser ou alors la partie du code javascript a modifier?
Merci d'avance