Rechercher : dans
Par :

Mauvaise position de la bulle

Dernière réponse le 23 mai 2009 à 09:50:57 Psix, le 23 mai 2009 à 09:27:51 
 Signaler ce message aux modérateurs

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" :

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 winwidth = ie && !window.opera ? ietruebody().clientWidth : window.innerWidth - 20;
var winheight = ie && !window.opera ? ietruebody().clientHeight : window.innerHeight - 20;

var rightedge = ie && !window.opera ? winwidth - event.clientX - xOffset : winwidth - e.clientX - xOffset;
var bottomedge = ie && !window.opera ? winheight - event.clientY - yOffset : winheight - e.clientY - yOffset;

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.
Configuration: Windows XP
Edition familiale
Version 2002

Meilleures réponses pour « Mauvaise position de la bulle » dans :
Positionner des éléments grâce aux CSS Voir Il est possible grâce aux feuilles de style de positionner au pixel près du texte ou des images grâce aux balises et . Cela est possible avec les versions 4 de Netscape et d'Internet Explorer, cependant cette technique reste hasardeuse...
Tri à bulles -récursivité- Voir Voici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri à bulles : Procedure Tri_bulles (var t : TAB; n : integer); Var i, aux : integer; Function Trier (t : TAB; n : integer) : Boolean; ...
VB6. Connaître la position absolue de la souris. VoirCette petite fonction permet de connaître la position de la souris par rapport à l'écran et non par rapport à la feuille ou au contrôle qu'elle contient. Dans un module Déclaration Public Type POINTAPI x As Long y As Long End...

1

dodoecchi, le 23 mai 2009 à 09:47:49

Et voilà ce qui arrive quand on prend du code sur le net...
tu n'y comprend pas grand chose je suppose...
et donc tu demandes gentilment aux autres de l'aide

il y'a juste un conseil que je peux te donner,
retourne sur la page où tu l'a trouvé, et voir s'il n'y a pas une liste de paramètres éventuels, une documentation, etc....

Dorian Je rencontre encore trop souvent des dinosaures sur CCM!! In­ternet Explorer 6 n'est pas encore une espèce disparue! Quel­le horreur!

Répondre à dodoecchi

2

 Psix, le 23 mai 2009 à 09:50:57

Merci de ta réponse. J'ai pris ce code sur internet car je ne connais pas le javascript et sur le "tutoriel" que j'ai trouvé pas trop d'éxplication... Enfin bon je voulais juste savoir si il y avait une ligne à changer ou pas. Car j'ai essayer quelques modifications mais rien donné.

Répondre à Psix