Bonjour à tous,
Je possède un code qui permet de définir un div comme redimensionnable avec la souris.
Il ressemble à ceci :
Il fonctionne très bien sauf lorsque je branche un rendu OpenLayers dans la division.
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 jQuery.resizable = function(resizerID, vOrH){ jQuery('#' + resizerID).bind("mousedown", function(e){ var start = e.pageY; if(vOrH=='v') start = e.pageX; jQuery('body').bind("mouseup", function(){ jQuery('body').unbind("mousemove"); jQuery('body').unbind("mouseup"); e.preventDefault(); e.stopPropagation (); return false; }); jQuery('body').bind("mousemove", function(e){ var end = e.pageY; if(vOrH=='v') end = e.pageX; if(vOrH=='h'){ jQuery('#' + resizerID).prev().height(jQuery('#' + resizerID).prev().height()+ (end-start)); jQuery('#' + resizerID).next().height(jQuery('#' + resizerID).next().height()- (end-start)); } else{ jQuery('#' + resizerID).prev().width(jQuery('#' + resizerID).prev().width()+ (end-start)); jQuery('#' + resizerID).next().width(jQuery('#' + resizerID).next().width()- (end-start)); } start = end; }); }); }; jQuery.resizable('div_right', "h");
En effet, j'attrape le sizer et je commence à redimensionner la zone tout doucement, ça fonctionne, mais si je vais un peu vite et que la souris passe sur la zone de la map, je ne reçois plus d'événements "mousemove" et donc le redimensionnement ne suit pas.
On dirait que pour sa propre gestion, OpenLayers capte les événements de la souris et ne les transmets pas au reste de la page.
Par agui de conscience j'ai essayé d'utiliser une bibliothèque afin de vérifier si le code que je possède est à remettre en cause ou non, et le comportement est le même.
J'ai pensé à désactiver la zone de rendu OpenLayers lorsque je détecte le "mousedown" et à la réactiver lors du "mouseup" mais rien à faire
Quelqu'un aurait une idée qui pourrait me faire avancer ?
Merci par avance,
A bientôt
Partager