Is there a way to zoom on a GWT image on a certain spot. Like on Google Maps. If you scroll on the part where your mouse pointer is, the image will zoom in that spot. Thank you very much!
Asked
Active
Viewed 141 times
1 Answers
0
This does the trick. Based on this JS response. Full source code here.
EventType.bind(document, wheel, new EventCallbackFn<WheelEvent>() {
double[] pos = {0, 0};
double scale = 1;
@Override
public void onEvent(WheelEvent ev) {
ev.preventDefault();
// cap the delta to [-1,1] for cross browser consistency
double delta = Math.max(-1, Math.min(1, ev.deltaY / 200.));
// determine the point on where the img is zoomed in
double[] zoomTarget = {(ev.pageX - pos[0]) / scale, (ev.pageY - pos[1]) / scale};
// calculate zoom and x and y based on it
scale = Math.max(.1, Math.min(10, scale + delta * scale));
pos[0] = -zoomTarget[0] * scale + ev.pageX;
pos[1] = -zoomTarget[1] * scale + ev.pageY;
target.style.transform = "translate(" + pos[0] + "px ," + pos[1] + "px) scale(" + scale + ")";
}
});

Ignacio Baca
- 1,538
- 14
- 18
-
Thanks. I'll check it ouy later! :) – Gabriel Mihai Jan 17 '19 at 14:02