gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:20:32 25 4
gpt4 key购买 nike

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

当鼠标指针在 map 上方时,默认页面滚动被阻止。我知道我可以在鼠标滚轮事件上使用 stopPropagation() 抑制滚动时的 map 缩放,但这只会导致禁用缩放。页面仍然没有滚动...

这会导致糟糕的用户体验,尤其是在页面内使用大型/全屏 map 时。

有什么想法吗?

最佳答案

使用下面的代码 ( like the esri demo here ) 禁用 View 的滚动缩放不会阻止触发 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

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

在此处查看现场演示:https://codepen.io/anon/pen/bQLwwm

关于javascript - 如何恢复 arcGIS 上的默认滚动行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53414904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com