Sửa 2017/05/18: CSS và Javascript liệu qua Tờ rơi Framework (recommended)
tôi đang tìm kiếm thông qua các mã nguồn cho the BoxZoom plugin và nhận thấy cách tiếp cận của họ sử dụng Leaflet's built-in DOM mutators và muốn quảng bá nó ở đây. ..đây chắc chắn là thực hành tốt nhất.
Example jsfiddle
Một nơi nào đó trong CSS của bạn bao gồm một lớp học như thế này ..
.leaflet-container.crosshair-cursor-enabled {
cursor:crosshair;
}
Khi bạn muốn kích hoạt chữ thập, làm điều này trong JS của bạn ..
// Assumes your Leaflet map variable is 'map'..
L.DomUtil.addClass(map._container,'crosshair-cursor-enabled');
Sau đó, khi bạn muốn vô hiệu hóa crosshairs, hãy thực hiện điều này trong JS của bạn ..
L.DomUtil.removeClass(map._container,'crosshair-cursor-enabled');
gốc trả lời: Bản đồ cấp crosshairs
@ scud42 đã cho tôi trên con đường đúng đắn. Bạn có thể sử dụng JQuery để thay đổi bản đồ con trỏ Tờ rơi như thế này:
$('.leaflet-container').css('cursor','crosshair');
Rồi sau đó, khi bạn muốn đặt lại con trỏ bản đồ, bạn có thể làm điều này:
$('.leaflet-container').css('cursor','');
Sửa 1,21 .2016: Mỗi tính năng chữ thập
Bạn cũng có thể kích hoạt tính năng chữ thập cho các tính năng cá nhân hỗ trợ tùy chọn className
, chẳng hạn như một hình đa giác, hoặc đỉnh tính năng vv
Dưới đây là một ví dụ về một vertice kéo mà sẽ chuyển con trỏ chữ thập (jsfiddle):
var svg_html_default = '<div style="margin:0px;padding:0px;height:8px;width:8px;border-style:solid;border-color:#FFFFFF;border-width:1px;background-color:#424242"</div>';
var default_icon = L.divIcon({
html: svg_html_default,
className: 'leaflet-mouse-marker',
iconAnchor: [5,5],
iconSize: [8,8]
});
var m = new L.marker([33.9731003, -80.9968865], {
icon: default_icon,
draggable: true,
opacity: 0.7
}).addTo(map);
m.on("mouseover",function(){$('.leaflet-mouse-marker').css('cursor','crosshair');});
m.on("mouseout",function(){$('.leaflet-mouse-marker').css('cursor','');});
khi nút điều khiển bị tắt, bất kỳ lớp nào đã được thêm vào nút? –