【问题标题】:Leaflet - how can I change the grabbing hand cursor?传单 - 如何更改抓取手形光标?
【发布时间】:2022-02-10 04:16:59
【问题描述】:

我可能忽略了如何在地图上更改 LeftletJS 的光标。 http://leafletjs.com/reference.htm

我尝试设置map_div.style.cursor = 'crosshair'; - 这适用于其他元素,但不适用于地图 div。我认为这是因为 Leaflet 以某种方式覆盖了它。

我希望能够使用 Javascript(和返回)切换到“十字准线”光标。

这可能吗?

更新:我没有 jQuery。

【问题讨论】:

    标签: javascript leaflet mouse-cursor


    【解决方案1】:

    您只需要覆盖 Leaflet 的光标样式。以下示例覆盖了默认光标:

    .leaflet-grab {cursor: auto;}
    

    当你拖动地图时,这个会改变光标:

    .leaflet-dragging .leaflet-grab {cursor: move;}
    

    现场样本:Change default Leaflet cursors

    【讨论】:

    • 不错的演示,我的地图上的奇怪行为;移动光标仅在完成移动(并松开鼠标)后出现
    【解决方案2】:

    您无法覆盖,因为该对象没有支持:

    解决方案---在创建地图后使用任一

    jQuery

    $('.leaflet-container').css('cursor','crosshair');
    

    JavaScript

    document.getElementById('map').style.cursor = 'crosshair'
    document.getElementById('map').style.cursor = '' //(reset)
    

    你也可以使用这个事件来改变你的鼠标:

    map_div.on('mousedown', function (e) {})
    

    【讨论】:

    • 能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?
    • 这与我尝试的有什么不同? (我没有 jQuery,所以我需要使用 DOM 方法。)
    • document.getElementById('map').style.cursor = 'crosshair'
    • 感谢您扩展您的答案,这非常有效。
    【解决方案3】:

    have a look at Leaflet's CSS 的替代方法是,查看哪些规则定义了光标形状,并覆盖了这些 CSS 规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多