如何恢复 arcGIS 上的默认滚动行为?
How to restore default scrolling behaviour on arcGIS?
我在使用带有 arcGIS 的地图时遇到一个问题 API:
当鼠标指针在地图上方时,默认页面滚动被阻止。我知道我可以在鼠标滚轮事件上使用 stopPropagation() 抑制滚动时的地图缩放,但这只会导致禁用缩放。页面仍然没有滚动...
这会导致糟糕的用户体验,尤其是在页面内使用大地图/全屏地图时。
有什么想法吗?
使用下面的代码 (like the esri demo here) 在视图上禁用滚动缩放不会阻止触发 DOM 元素 wheel
事件,这会阻止默认页面滚动;
//this prevent the mapView to zoom on wheel but does not make the page to scroll as wanted
view.on("mouse-wheel", function(event) {
// disable mouse wheel scroll zooming on the view
event.stopPropagation();
});
所以你需要做的是在处理 esri wheel 事件的 DOM 元素上添加一个 wheel 事件侦听器,然后执行 event.stopImmediatePropagation()
esri wheel 事件取消不会触发默认页面滚动。
对于 API v.4.9,您必须使用的 DOM 元素具有 esri-view-surface
class
var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });
在此处查看现场演示:https://codepen.io/anon/pen/bQLwwm
我在使用带有 arcGIS 的地图时遇到一个问题 API:
当鼠标指针在地图上方时,默认页面滚动被阻止。我知道我可以在鼠标滚轮事件上使用 stopPropagation() 抑制滚动时的地图缩放,但这只会导致禁用缩放。页面仍然没有滚动...
这会导致糟糕的用户体验,尤其是在页面内使用大地图/全屏地图时。
有什么想法吗?
使用下面的代码 (like the esri demo here) 在视图上禁用滚动缩放不会阻止触发 DOM 元素 wheel
事件,这会阻止默认页面滚动;
//this prevent the mapView to zoom on wheel but does not make the page to scroll as wanted
view.on("mouse-wheel", function(event) {
// disable mouse wheel scroll zooming on the view
event.stopPropagation();
});
所以你需要做的是在处理 esri wheel 事件的 DOM 元素上添加一个 wheel 事件侦听器,然后执行 event.stopImmediatePropagation()
esri wheel 事件取消不会触发默认页面滚动。
对于 API v.4.9,您必须使用的 DOM 元素具有 esri-view-surface
class
var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });
在此处查看现场演示:https://codepen.io/anon/pen/bQLwwm