Bonjour,
suite à ce magnifique tutoriel la et la
j'ai pu largement m'inspirer du code pour l'adapter à mon application., et cela fonctionne parfaitement à part un point non négligeable.
Je me suis rendu condu que lorsque l'on affiche le lien à environ une fois et demi la hauteur de l'ecran, la popup ne s'affiche plus a coté du pointeur (soit on la voit pas, soit elle est affichée complétement ailleurs)
Je pense que cela viens de la partie Javascript, mais je suis pas capable de trouver l'erreur
Merci de votre aide
Modifié par imer (02 Aug 2006 - 11:49)
suite à ce magnifique tutoriel la et la
j'ai pu largement m'inspirer du code pour l'adapter à mon application., et cela fonctionne parfaitement à part un point non négligeable.
Je me suis rendu condu que lorsque l'on affiche le lien à environ une fois et demi la hauteur de l'ecran, la popup ne s'affiche plus a coté du pointeur (soit on la voit pas, soit elle est affichée complétement ailleurs)
Je pense que cela viens de la partie Javascript, mais je suis pas capable de trouver l'erreur

gk=window.Event?1:0; // navigateurs Gecko ou IE
D=document;bulle=popup=popn=encours=wpop=hpop=x=0
function ctrl(e)
{
if(!x){de=!D.documentElement.clientWidth?D.body:D.documentElement;x=1} // IE6
el=gk?e.target:event.srcElement; //objet sous la souris
if(!el.tagName)el=el.parentNode; // noeud #text
if(el.className == 'pop' && el.href)
{
popup = D.getElementById(el.href.substring(el.href.lastIndexOf('#') + 1));
with(popup){wpop=offsetWidth;hpop=offsetHeight;bulle=style}
if(bulle!=encours) // seulement si changement de bulle
{
encours.left=-999+'px';
encours=bulle;
fx=gk?innerWidth-15:de.clientWidth //l fenêtre
fy=gk?innerHeight-15:de.clientHeight //h fenêtre
sx=gk?pageXOffset:de.scrollLeft //scroll h
sy=gk?pageYOffset:de.scrollTop //scroll v
x=gk?e.pageX:event.clientX+sx; //curseur x
y=gk?e.pageY:event.clientY+sy; //curseur y
posx=x>=fx+sx-wpop-10?x-15-wpop:x+10
posy=y>=fy+sy-hpop-20?fy+sy-hpop-15:y+10
with(bulle){left=posx+'px';top=posy+'px';}
el.onclick=function(){return false}//désactive le lien
}
} else {encours.left=-999+'px';encours=0}
}
D.onmousemove=ctrl
//active la feuille de style
document.getElementsByTagName("link")[0].href="../style.css"
Merci de votre aide
Modifié par imer (02 Aug 2006 - 11:49)