我有一个位于div中的Leaflet地图,以及一个位于其上方的图层列表。图层列表通常很长,并且由于溢出的css属性而显示滚动条:正在设置滚动条。
如果您点击滚动条上的任何位置,则拖动不会被提升到下面的地图,但是如果您单击并拖动滚动条,它会传播到地图并开始拖动。
这仅适用于IE10 +,它可以在Firefox,Chrome等中正常使用。
如何防止此行为?
答案 0 :(得分:0)
我应该阅读有关Leaflet的更多信息。我发现Leaflet劫持了所有事件处理并实现了自己的事件模型。正常的stopPropagation,window.event.cancelBubble或你不会工作的东西。
你必须使用Leaflet自己的处理程序:
render(): ReactElement {
var circles = this.state.keys.map((key, idx) => {
//code omitted
}
return (
<View style={{flex: 1, flexDirection: 'column'}}>
<View style={[{flex: 1, overflow: 'hidden', margin: 5, marginTop: 20}, ]}>
<View style={styles.left} onLayout={(e) => this.setState({layout: e.nativeEvent.layout})}>
{circles}
</View>}
</View>
</View>
)
原因是我的菜单元素是作为Leaflet控件创建的:
L.DomEvent.disableClickPropagation(leafletMenu);