这是我的地图div的CSS:
#map {
position: fixed;
top: 9.48em;
bottom: 2.2em;
}
我的OpenLayers地图在此div中呈现.一切正常.但是只要我添加一个
overflow:auto;
上方css中的属性,则无法使用地图上的滚轮缩放.我需要添加此属性,因为现在我需要显示一些表格来代替地图.
我怀疑当我添加滚动条时,滚轮的事件未到达OpenLayers.
通过修复CSS或某些OpenLayers代码来解决此问题吗?
我知道我可以通过在JS中添加一些逻辑来做到这一点,该逻辑根据要加载的页面动态更改css属性,但是除非绝对必要,否则我不想走那条路,找到干净的解决方案.
谢谢.
解决方法:
很好的问题,这是设计使然:如果您位于可滚动的div上,OpenLayers将不会执行任何操作(它将为此检查溢出样式),否则,它将滚动地图.
查看解释源:https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Handler/MouseWheel.js#L149
检查溢出样式在这里:https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Handler/MouseWheel.js#L124