切换 Leaflet 侧边栏 V2

Toggle Leaflet sidebar V2

所以我真的很喜欢使用这个侧边栏,但正在努力切换侧边栏或至少读取侧边栏状态,以便 .open() 或 .close() 相应地。允许版本 1 siderbar.toggle(); - https://github.com/Turbo87/leaflet-sidebar

似乎无法在版本 2 上找到它 - https://github.com/Turbo87/sidebar-v2

该插件在折叠时将 collapsed class 添加到侧边栏,因此您可以使用它来检查其状态。从 this answer 中借用一个函数来检查元素是否具有特定的 class(并假设您的侧边栏 div 具有 ID sidebar),您可以像这样切换它:

var sidebar = L.control.sidebar('sidebar').addTo(map);
var sidebarDiv = document.getElementById('sidebar');

toggleSidebar = function() {
  if (hasClass(sidebarDiv,'collapsed')) {
    sidebar.open();
  } else {
    sidebar.close();
  }
}

function hasClass(element, cls) {
  return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}

示例fiddle:

http://fiddle.jshell.net/nathansnider/gpqbvs50/