Javascript 如何恢复arcGIS上的默认滚动行为?

Javascript 如何恢复arcGIS上的默认滚动行为?,javascript,scroll,mousewheel,arcgis-js-api,stoppropagation,Javascript,Scroll,Mousewheel,Arcgis Js Api,Stoppropagation,我在使用带有arcGIS API的地图时遇到一个问题: 当鼠标指针位于地图上方时,默认页面滚动被阻止。我知道我可以使用鼠标滚轮上的stopPropagation()事件抑制滚动地图缩放,但这只会导致禁用缩放。页面仍无法在滚动中移动 这会导致糟糕的用户体验,尤其是在页面中使用大屏幕/全屏地图时 有什么想法吗?使用下面的代码()禁用视图上的滚动缩放不会阻止触发DOM元素wheel事件,从而阻止默认页面滚动 //this prevent the mapView to zoom on wheel b

我在使用带有arcGIS API的地图时遇到一个问题:

当鼠标指针位于地图上方时,默认页面滚动被阻止。我知道我可以使用鼠标滚轮上的stopPropagation()事件抑制滚动地图缩放,但这只会导致禁用缩放。页面仍无法在滚动中移动

这会导致糟糕的用户体验,尤其是在页面中使用大屏幕/全屏地图时


有什么想法吗?

使用下面的代码()禁用视图上的滚动缩放不会阻止触发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事件侦听器,然后执行一个操作,以使取消默认页面滚动的esri wheel事件不会被触发

在API v.4.9中,必须使用的DOM元素具有
esri视图曲面

  var viewSurfaceElem = document.getElementsByClassName("esri-view-surface")[0];
  viewSurfaceElem.addEventListener("wheel", function(event) { event.stopImmediatePropagation(); });

请参见此处的现场演示:

就是这样。谢谢!谢谢你的回答。这很有效。现在我有另一个类似的问题:因为我只能通过iFrame嵌入客户端的应用程序,所以存在同样的滚动问题。我可以查一下✓ 设置中的“阻止地图滚动”选项,但当鼠标光标位于地图上方时,页面仍停止滚动。由于iframe是以全屏大小嵌入的,因此它完全阻止页面滚动。你知道怎么解决这个问题吗?谢谢你的帮助。我不太明白这个问题,你能提供一个问题的演示吗?据我所知,您不需要添加
overflow-y:auto到iframe css?