Example on Fiddleリーフレット:マーカーのオートスクロールサイドバー「マウスクリック」
map.on('click', onMapClick);
function onMarkerClick(e) {
$('div').removeClass('active');
$('div #' + e.target._leaflet_id).addClass('active');
for (var mark in markers){
markers[mark].setIcon(smallIcon);}
var offset = map._getNewTopLeftPoint(e.target.getLatLng()).subtract(map._getTopLeftPoint());
map.panBy(offset);
}
function onMapClick(e) {
var marker = new L.Marker(e.latlng);
marker.on('click', onMarkerClick);
map.addLayer(marker);
marker.bindPopup("Marker");
markers[marker._leaflet_id] = marker;
$('#overlay').append(
'<div class="item" id="' + marker._leaflet_id + '">Marker ' + marker._leaflet_id + ' - <a href="#" class="remove" id="' + marker._leaflet_id + '">remove</a></div>');
// Remove a marker
$('.remove').on("click", function() {
// Remove the marker
map.removeLayer(markers[$(this).attr('id')]);
// Remove the link
$(this).parent('div').remove();
});
$('.item').on("mouseover", function() {
$('div').removeClass('active');
$(this).addClass('active');
for (var mark in markers){
markers[mark].setIcon(smallIcon);}
markerFunction($(this).attr('id'))
markers[$(this).attr('id')].setIcon(bigIcon);
var mid = $(this).attr('id');
var LatLng = markers[mid].getLatLng();
var offset = map._getNewTopLeftPoint(LatLng).subtract(map._getTopLeftPoint());
map.panBy(offset);
});
}
function markerFunction(id){
markers[id].openPopup();
}
は、サイドバー上にマーカーを追加する方法を示しています。ユーザーがサイドバーのアイテムにカーソルを合わせると、地図の中央にマーカーが自動的に表示されます。ユーザーがマーカーをクリックすると、サイドバーの項目が強調表示されます。
ただし、地図上にマーカーがたくさんある場合、サイドバーの自動スクロールを行うにはどうすればよいですか。 (例えば、サイドバー上のハイライト表示された項目は、手動でサイドバー上の強調表示された項目は、このような
はい、そのようなものですが、私の例よりも複雑です。私はjquery知らない:( – Tenz
あなたのように動作するようにフィーリンの例を編集するにはどうすればいいですか? – Tenz
私の質問は、とにかくマーカーをクリックしてください。 – Tenz