滚轮在OpenLayers上缩放停止使用div设置为overflow:auto

时间:2012-03-27 07:05:00

标签: javascript css scrollbar openlayers

这是我的地图div的css:

#map {
              position: fixed;
              top: 9.48em;
              bottom: 2.2em;

            }

我的OpenLayers地图在此div中呈现。一切正常。但是只要我添加一个

overflow:auto;
在上面的CSS中的

属性,我的地图上使用滚轮的缩放被禁用。我需要添加此属性,因为现在我需要显示一些表来代替map。

我怀疑当我添加滚动条时滚轮的事件没有到达OpenLayers。

通过修复css或某些OpenLayers代码可以解决这个问题吗?

我知道我可以通过在JS中添加一些根据正在加载的页面动态更改css属性的逻辑来实现,但除非绝对必要,否则我不想走那条路,找到干净的解决方案。

感谢。

1 个答案:

答案 0 :(得分:3)

好问题,那就是设计:如果你是一个可滚动的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