java - 在 GWT 上的某个位置缩放图像
问题描述
有没有办法在某个位置放大 GWT 图像。就像在谷歌地图上一样。如果您滚动鼠标指针所在的部分,图像将放大该位置。非常感谢!
解决方案
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 + ")";
}
});
推荐阅读
- c - 检查两个字符串是否匹配
- python - django-admin runserver 给出错误 django.core.exceptions.ImproperlyConfigured
- html - 在循环中单击时更改按钮上的 css
- pentaho-data-integration - 如何为数据库行生成/创建唯一 ID
- javascript - 在 chrome 扩展程序和网页之间传递数据
- python-3.x - 使用 subprocess.popen & quit() 重定向到另一个 .py 进程,是否可以打开前一个 .py?
- sql - 按供应商 ID 获取最新的 3 个订单
- jvm - Tomcat7 - 创建 jvm 失败 Windows 10
- javascript - 如何在点击时执行多个承诺
- python - Scikit-image:如何忽略/屏蔽 ndarray 中的零值以便之后进行插值?