如何恢复 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