Bonjour. Mon problème est le suivant : je fait un site avec sur des pages des photos avec des agrandissements dans des bulles. Cela les affichent en fonctions de la positions de la sourie, mais je voudrait que la bulle soit centrée (même lorsque on fait défiler l'ascenseur). J'ai trouvé le code sur internet, voici celui de ma page "infobulle.js" :
Code:
var xOffset=6 var yOffset=5
var affiche = false; // La variable i nous dit si le bloc est visible ou non var w3c=document.getElementById && !document.all; var ie=document.all;
if (ie||w3c) { var laBulle }
function ietruebody(){ // retourne le bon corps... return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body }
function deplacer(e) { if(affiche){ var curX = (w3c) ? e.pageX : event.x + ietruebody().scrollLeft; var curY = (w3c) ? e.pageY : event.y + ietruebody().scrollTop;
var leftedge = (xOffset < 0) ? xOffset*(-1) : -1000
// modifier la largeur de l'objet s'il est trop grand... if(laBulle.offsetWidth > winwidth / 3){ laBulle.style.width = winwidth / 3 }
// si la largeur horizontale n'est pas assez grande pour l'info bulle if(rightedge < laBulle.offsetWidth){ // bouge la position horizontale de sa largeur à gauche laBulle.style.left = curX - laBulle.offsetWidth + "px" } else { if(curX < leftedge){ laBulle.style.left = "5px" } else{ // la position horizontale de la souris laBulle.style.left = curX + xOffset + "px" } }
// même chose avec la verticale if(bottomedge < laBulle.offsetHeight){ laBulle.style.top = curY - laBulle.offsetHeight - yOffset + "px" } else { laBulle.style.top = curY + yOffset + "px" } } } function showTooltip(text) { if (w3c||ie){ laBulle = document.all ? document.all["bulle"] : document.getElementById ? document.getElementById("bulle") : "" laBulle.innerHTML = text; // fixe le texte dans l'infobulle laBulle.style.visibility = "visible"; // Si il est cachée (la verif n'est qu'une securité) on le rend visible. affiche = true; } } function hideTooltip() { if (w3c||ie){ affiche = false laBulle.style.visibility="hidden" // avoid the IE6 cache optimisation with hidden blocks laBulle.style.top = '-100000px' laBulle.style.backgroundColor = '' laBulle.style.width = '' } }
document.onmousemove = deplacer; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
Merci d'avoir lu mon message. N'hésitez pas à me demander plus de renseignement afin de m'aider sur mon problème.