1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| <script type="text/javascript">
<!--
/* Script "z'experts" : http://perso.wanadoo.fr/coin.des.experts/
delivre sans aucune garantie, ni des auteurs, ni du gouvernement.
Diffusion libre, mais merci de conserver cette signature :-) */
/* Attention au doctype : si vous en mettez un (c'est quand meme mieux) et
si voulez que ca fonctionne avec IE6 il faut un HTLM 4 transitional **SANS URL**
(cf ci-dessus), c.a.d. IE6 doit rester dans son mode "microsoft".
Toujours cause des bugs de IE6, n'essayez pas de permuter les
tests sur document.all et sur document.getElementById */
/* Les bulles doivent avoir ete preparees dans autant de calques separes
en position:absolute (sans qu'il soit necessaire de preciser de top ou
left) que l'on rendra invisible (visibility:hidden). Il est important
d'avoir fixe la largeur et la hauteur de ces calques-bulles EN PIXELS. */
/* La fonction bullepop() qui ouvre la bulle d'aide doit etre appelee
avec 2 arguments:
- le premier est l'identificateur (ID) du calque a faire apparaitre.
- LE DEUXIEME EST OBLIGATOIREMENT "event" (sans les guillemets)
c.a.d. un mot cle du javascript.
*/
var bulleStyle=null;
if (!document.layers && !document.all && !document.getElementById)
event="chut"; //pour apaiser NN3 et autres antiquites
function bullepop(idd,evt)
{
var xfenetre,yfenetre,xpage,ypage,element=null;
var offset= 20; // decalage par defaut
var bulleWidth=200; // largeur par defaut
var hauteur=50; // hauteur par defaut
bulleStyle=null;
if (document.layers)
{
bulleStyle=document.layers[idd];
xpage = evt.pageX ; ypage = evt.pageY;
xfenetre = xpage ;yfenetre = ypage ;
}
else if (document.all)
{
element=document.all[idd]
xfenetre = evt.x ;yfenetre = evt.y ;
xpage=xfenetre ; ypage=yfenetre ;
if (document.body.scrollLeft) xpage = xfenetre + document.body.scrollLeft ;
if (document.body.scrollTop) ypage = yfenetre + document.body.scrollTop;
}
else if (document.getElementById)
{
element=document.getElementById(idd)
xfenetre = evt.clientX ; yfenetre = evt.clientY ;
xpage=xfenetre ; ypage=yfenetre ;
if(evt.pageX) xpage = evt.pageX ;
if(evt.pageY) ypage = evt.pageY ;
}
if(element) bulleStyle=element.style;
if(bulleStyle)
{
var yp0=ypage;
var yf0=yfenetre;
/* tests incongrus cause d'Opera5 */
if(bulleStyle.width) bulleWidth = parseFloat(bulleStyle.width);
if(bulleStyle.height) hauteur = parseFloat(bulleStyle.height);
/* on met la bulle gauche du pointeur (si c'est possible)
et en haut du pointeur si on est assez bas dans l'ecran */
if (xfenetre > bulleWidth+offset)
xpage=xpage-bulleWidth-offset;
else
{
if (xfenetre >0.5*bulleWidth+offset)
xpage=xpage-0.5*bulleWidth-offset;
else
xpage=xpage+15;
}
if ( yfenetre > hauteur+offset )
ypage=ypage-hauteur-offset
else
ypage=ypage+offset;
/* a cause des debilites d'Opera5 il faut rectifier 'ypage' pour eviter
que la bulle ne s'ouvre par-dessus la souris. La bulle s'ouvrira
TOUJOURS en bas avec Opera5. Derniere vacherie : il faut faire le test sur
bulleStyle.width pour se proteger des distraits qui n'auront pas
rempli bulleStyle.height */
if (!bulleStyle.width)
ypage=yfenetre+offset;
if(typeof(bulleStyle.left)=='string')
{
bulleStyle.left=xpage+'px'; bulleStyle.top=ypage+'px';
}
else
{
bulleStyle.left=xpage;
bulleStyle.top=ypage ;
}
bulleStyle.visibility="visible";
bulleStyle.zIndex="99";
}
}
/*
function couic()
{
if (bulleStyle)
{
bulleStyle.visibility="hidden";
}
}
*/
/** Ajout d un chrono pour les bulles **/
var tabChrono = new Array();
function couicTime(idd,n)
{
document.getElementById(idd).style.visibility = "hidden";
tabChrono[n]=null;
}
function couic(idd)
{
var n=0;
while (tabChrono[n]!=null)
n++;
if(document.getElementById(idd))
{
tabChrono[n] = setTimeout(function(){couicTime(idd,n)},"0");
}
}
//-->
</script> |
Partager