自定义leaflet.js中的放大/缩小按钮

2022-01-12 00:00:00 leaflet javascript css

我正在尝试自定义缩放控制 (+/-),因此它应该像 Google 地图一样出现在右侧 (https:///www.google.com/maps/)

I am trying to customize zoom control (+/-), so it should appear in the right side like Google maps (https://www.google.com/maps/)

我尝试添加 float:right; 但没有成功.

I tried to add float:right; but it didn't work.

来自 CSS 文件:

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
  font: bold 18px 'Lucida Console', Monaco, monospace;
  text-indent: 1px;
  }
.leaflet-control-zoom-out {
  font-size: 20px;
  }

.leaflet-touch .leaflet-control-zoom-in {
  font-size: 22px;
  }
.leaflet-touch .leaflet-control-zoom-out {
  font-size: 24px;
  }

http://jsfiddle.net/hsy7v/1/

推荐答案

你的放大/缩小控件被绝对定位的元素包裹着 left:0 (由于 .leaflet-left 类),所以 float:left 无济于事,您可以通过 right:0 覆盖 left:0 或更改 来将其右对齐>.leaflet-left 类到 .leaflet-right

Your zoom in/out controls are wrapped with absolutely positioned element with left:0 (due to .leaflet-left class), so float:left wouldn't help, you could align it to right by overriding left:0 by right:0, or changing .leaflet-left class to .leaflet-right

但更正确的方法是使用提供的 api.

But more correct way would be to use provided api.

//disable zoomControl when initializing map (which is topleft by default)
var map = L.map("map", {
    zoomControl: false
    //... other options
});

//add zoom control with your options
L.control.zoom({
     position:'topright'
}).addTo(map);

查看更新的 fiddle

您使用的库的 api 参考可以在 这里

api reference for the library you use can be found here

相关文章