Déplacé une info-bulle

Résolu
Signaler
Messages postés
26
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
5 octobre 2009
-
Messages postés
26
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
5 octobre 2009
-
Bonjour,

J'essai de déplacer une info bulle (un span), sans grand résultat pour le moment...

Je souhaite que l'utilisateur puisse déplacer le contenu de l'info, façon drag and drop.

Voici ce que j'ai écris :

function deplacenote(obj,event)
{
var e = event || window.event;
var nx = e.clientX;
var ny = e.clientY;

if (clicenbas)
{


var diffx = parseInt(oldx)-parseInt(nx);
var diffy = parseInt(oldy)-parseInt(ny);
obj.style.bottom = (parseInt(obj.style.bottom) + parseInt(diffy))+'px';
obj.style.left = (parseInt(obj.style.left) - parseInt(diffx)) +'px';
}
oldx = nx;
oldy = ny;

}


Les variables oldx et oldy ainsi que sourisenbas sont globales, les valeurs sont mises à jour par une fonction qui écoute les clic souris...

Et le code des infobulles :

; position : absolute; left:<?php echo $cx."px" ?>; top:<?php echo $cy."px" ?>" onmouseover="survolannotation(this, event);" onmouseout="finsurvolannotation(this, event);" >
" ondblclick= 'window.location.replace("editeur.php?id=<?php echo $id ?>&iddoc=<?php echo $iddoc ?>")'>


<?php if ($contenu) echo $contenu ?>
" />





est ce qu'il est possible de déplacé un objet placé en "relative"? Est ce qu'il est possible de le placer audela du div?

Merci de vos réponses

2 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
12
Bonjour,

déplacer un élément, c'est jouer
avec son style.left et style.top
en fonction de la position du la souris

var nx = e.clientx;
var ny = e.clienty;

exclusif Fx ça ( ça ne fonctionnera pas avec IE )

>>déplacer un objet placé en "relative"?
faut qu'on s'entende ....
_ absolute c'est une position..... relative !!! ( sans rire )
par rapport au contenant ( qui peut-être le body )

_ relative, c'est par rapport à la position
qu'occuperait l'élément s'il n'y avait pas
de style.position

sur CodesSources, il y a une foultitude d'exemples
qui traitent de ce genre de choses

Cordialement
Messages postés
26
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
5 octobre 2009

Merci Bul3!

En fait j'ai une erreur dans mon script, mais dans l'idée, j'étais dans le vrai ^^
Les valeurs de obj.style.left et obj.style.bottom n'étant pas initialisées, JS ne faisait pas le calcul de la nouvelle position de la façon que je voulais (la valeur restait vide)

solution => if(obj.style.left) {calcul} else {initialisation}

idem pour bottom.