voila j'essaie de faire une fonction qui
me permettra de deplacer plusieurs DIV. j'ai pris un code draganddrop qui me
permet de deplacer un et un seul DIV (ce qui marche) et je bidouille pour faire en sorte
que ca marche pour tous les DIV de ma page.
voici mon code javascript:
onmouseup=endDrag;
}
}
function doDrag(aLayerPlage) {
if
(ie) {
var difX=event.clientX-window.lastX;
var
difY=event.clientY-window.lastY;
var newX1 =
parseInt(aLayerPlage.style.left)+difX;
var newY1 =
parseInt(aLayerPlage.style.top)+difY;
aLayerPlage.style.left=newX1+"px";
Bonjour,
>>c'est que le deplacement se fait sur le point du div en haut à gauche
oui top et left.
>>mon div est contenu dans deux autres div
donc mettre les fonctions du body sur l'un de ces div ( lequel ? ) ou
tenir compte de la position de ce(s) div ( offsetLeft et offsetTop de mémoire )
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO></S< body>
Bonjour,
déplacer ?
° toutes en même temps ou celle sur laquelle on clique d'abord ?
° en fonction de la position de la souris ?
si oui, un ch'tit exemple
<script type="text/javascript">
var deplace=false;
function mymove() {
if ( deplace )
{
deplace.style.top=event.clientY;
deplace.style.left=event.clientX;
}
}
</script>
j'ai mis en place ta solution et je comprends pas mes layers se deplace bien mais ya un decalage
de mon layer a chaque fois que je veux le deplacer en bas à droite.
je me suis dis qu'il fallait refaire le calcul comme je faisais avant, mais ca plante
voila le code :
function mymove() {
if ( deplace,e )
{
// deplace.style.top=event.clientY; ( ton code precedent est en commentaire)
// deplace.style.left=event.clientX;
var difX=event.clientX-window.lastX;
var difY=event.clientY-window.lastY;
var newX1 = parseInt(deplace.style.left)+difX;
var newY1 = parseInt(deplace.style.top)+difY;
deplace.style.left=newX1+"px";
deplace.style.top=newY1+"px";
si style="position:absolute... pas de raison à ce décalage.
pour l'erreur sur ton script, c'est quoi window.lastX ou lastY ?
je suppose que tu voulais des variables globales ?
et elles ne sont pas initialisées, si ?
=> en dehors de toute function var lastX=0,lastY=0;
et dans les function utiliser lastX et lastY.
mais inutile ce me semble ?
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO></S< body>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Oui en effet,
je suis desole je n'avais pas remarque le position absolute dans le div que tu as rajouté.
Cependant meme avec ca , j'ai un decalage !!!!!!!!!!
c bizzare
manu
on peut voir le script ( enfin un petit bout d'extrait )
car , je viens de dire la même chose à quelqu'un d'autre
et je sais que c'est agaçant d'entendre ça : pas de raisons.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO></S< body>
je ne remarque aucun décalage ?
maintenant on peut jouer avec deplace.style.top=event.clientX+ ou - valeur; ???
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO></S< body>
je met dans le style du 1er div background-color:#FFFF00 et #FF8000 dans le 2ème
pour contrôler, et tout va bien.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO></S< body>
j'ai mis des background-color:couleur pour contrôler et tout va bien
en fin pour moi
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO></S< body>
merci de tes reponses,
mais c vrai que c bizarre, chez moi ca se decale:
je de donne toute ma page(ya que le necessaire), j'ai peut etre zapper un truc,
car moi des que je clic j'ai le decalage:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
<script type="text/javascript">
var deplace=false;
function mymove() {
if ( deplace )
{
deplace.style.top=event.clientY;
deplace.style.left=event.clientX;
}
ben non, pas de décalage chez moi.
class="PLAGE" ? peut-être ? ( si le style existe ).
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO></S< body>
salut ,
Bon j'ai compris , alors an fait il y a deux choses.
La premiere , c'est que le deplacement se fait sur le point du div en haut à gauche, donc lorsque je prends mon div au milieu ou en bas a droite j'ai un petit decalage, mais bon ca marche bien :).
Le deuxieme point c'est que ce decalage s'emplifie car en fait mon div est contenu dans deux autres div ET C CA LE SOUCIS
en esperant que ca te parle:
Droit Industriel
(vide)
BRUNEL JEAN MARC
Promotion
-
MANAGEMENT DU TOURISME
(vide)
DUJOUR CLAUDE
Promotion
donc mettre les fonctions du body sur l'un de ces div ( lequel ? )
>> J'ai essayé de les mettre dans chacun des div parents, sans succes
tenir compte de la position de ce(s) div ( offsetLeft et offsetTop de mémoire )
>> oui je pense que ca doit etre ca , mais comment faire ?
ou doit je mettre les offset ?
merci
re
Enfin !!!!!!!!
j'ai trouvé une soluce, c normal que je t'en fasse part.
C'est peut etre pas la meilleure solution.
En gros les autres DIV avait leur propre proprieteet donc j'avais un decalage.
Alors je repercute ce decalage dans mon calcul ce qui donne pour mon cas :
function mymove(e) {
if ( deplace )
{
deplace.style.top=event.clientY-80; //mes decalage neccessaire
deplace.style.left=event.clientX-190;
deplace.style.background = '#FFCF9C'; //des petites options en plus
deplace.style.color = '#000000';
deplace.style.zIndex = deplace.style.zIndex+i;
i=i+5;
}
}
Merci beaucoup a toi, bultez
manu