Bonjour,
J'ai fait une fonction permettant le redimensionnnement d'un div. Ca marche, sauf dans le cas où on fait descendre le scroll vertical...
En fait, la position de ma souris se décale de la distance de laquelle on est descendus avec le scroll...
Comment y remédier?
Voici mon code:
Et l'appel de ces fonctions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 var xinit; // position de la souris au clic sur le div var yinit; var x; // position de l'élément au départ var y; var initier = false; // si on est en train de cliquer var idEnCours; // id du div qui est en cours de modif function init(e, id){ idEnCours = id; initier = true; xtmp = document.getElementById(id).offsetLeft; ytmp = document.getElementById(id).offsetTop; x = document.getElementById(id).offsetLeft; y = document.getElementById(id).offsetTop; xinit = e.clientX; yinit = e.clientY; } function bouge(e){ // si on a cliqué et qu'on bouge if(initier){ xtmp = document.getElementById(idEnCours).offsetLeft; ytmp = document.getElementById(idEnCours).offsetTop; document.getElementById(idEnCours).style.width = document.getElementById(idEnCours).offsetWidth + (e.clientX - x - document.getElementById(idEnCours).offsetWidth+10)+ "px"; document.getElementById(idEnCours).style.height = document.getElementById(idEnCours).offsetHeight + (e.clientY - y - document.getElementById(idEnCours).offsetHeight+12)+ "px"; } } function fin(e){ initier = false; }
Le div carre_resize sert de poignée pour la redimension...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <body onmousemove="bouge(event);" onmouseup="fin(event);"> <div id=boxHandle style="LEFT: 505px; WIDTH: 275px; TOP: 405px; HEIGHT: 214px"> <DIV class=carre_resize onmousedown="init(event,'boxHandle');" id=carre_resize></DIV> </div> </body>
Une idée?
Partager