一次保持一个传单侧边栏打开
Keeping one Leaflet sidebar open at a time
我正在做一个传单地图项目,上面有多个标记,可以打开相应的侧边栏(标记A打开侧边栏A,标记B打开侧边栏B等(这是代码希望实现此目的的原因:
.HTML
<div id="sidebar">
<h1>Sidebar 1</h1>
</div>
<div id="sidebar-two">
<h1>Sidebar 2</h1>
</div>
JavaScript:
var sidebar = L.control.sidebar('sidebar', {
closeButton: true,
position: 'left'
});
map.addControl(sidebar);
var marker = L.marker([51.2, 7]).addTo(map).on('click', function () {
sidebar.toggle();
});
var sidebarTwo = L.control.sidebar('sidebar-two', {
closeButton: true,
position: 'left'
});
map.addControl(sidebarTwo);
var marker = L.marker([52.2, 7]).addTo(map).on('click', function () {
sidebarTwo.toggle();
});
现在,我正在使用传单侧边栏插件,当我一次单击多个标记时,侧边栏会彼此重叠打开。
我想做的是,如果您单击标记A并且出现侧边栏A,则可以单击标记B,它将关闭侧边栏A并引入侧边栏B。我希望这是可互换的,因此任何标记都会关闭当前打开的标记,并引入自己的侧边栏。这可能吗?我包含一个JSFIDDLE来显示基本地图,标记和侧边栏的外观。注意:您需要将演示窗口拉宽,才能在默认屏幕宽度上看到它。
该演示还包括插件的源代码。我已经摆弄了它,并有一种感觉,这个代码片段:
toggle: function () {
if (this.isVisible()) {
this.hide();
} else {
this.show();
}
},
可能是我的答案所在。我不确定。
您可以在点击功能中关闭其他侧边栏:
var marker = L.marker([52.2, 7]).addTo(map).on('click', function () {
if(sidebar.isVisible())
sidebar.hide();
sidebarTwo.toggle();
});
相关文章:
- 当侧边栏很长时,滚动/固定侧边栏会被切断
- 创建带有侧边栏的谷歌地图
- 如何在显示侧边栏时禁用背景,单击除侧边栏之外的任何位置都会关闭侧边栏
- 在页脚处停止固定侧边栏-防止重叠
- 如何将javascript添加到Wordpress侧边栏中
- 如何正确地将数据发送到打开的Firefox侧边栏
- 如何制作侧边栏以增加其完整长度
- 固定位置侧边栏不滚动-设置内容的高度
- Firefox插件SDK:在侧边栏和主脚本之间通信对象
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 如何将数组(Google应用程序脚本)返回到HTML侧边栏
- 切换传单侧边栏 V2
- 粘性侧边栏停止在页脚上方 30px
- 使用什么js函数来切换侧边栏
- 指定的侧边栏广播器无效 -- 有效的侧边栏广播器是什么样子的
- 向下滚动页面时在侧边栏中显示部分标题(也许使用 BS scrollspy?
- 一次保持一个传单侧边栏打开
- 使用 Javascript 创建侧边栏是一种好习惯吗?
- 引导程序崩溃.在需要两次点击隐藏侧边栏
- 如何在Google apps脚本中显示一个数组到HTML侧边栏