切换 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:
所以我真的很喜欢使用这个侧边栏,但正在努力切换侧边栏或至少读取侧边栏状态,以便 .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: