javascript - 如何隐藏侧面板,使它们不相互重叠

标签 javascript html css

我有 4 个侧面板,当我点击相应的按钮时它们会相互重叠。如何在另一个打开时隐藏一个?

这是触发面板的菜单:

    <div id="resources-menu-main">
    <ul>
    <li id="toc-main-button"><a href="#toc-beginning" onclick="showLeftPanel();"><img src="gfx/toc.png" width="50" alt="Table of Contents"></a></li>
    <li id="footnotes-main-button"><a href="#footnotes-section" onclick="showFootnotesPanel();"><img src="gfx/footnotes.png" width="50" alt="Footnotes"></a></li>
    <li id="references-main-button"><a href="#references-section" onclick="showReferencesPanel();"><img src="gfx/references.png" width="50" alt="References"></a></li>
    <li id="images-main-button"><a href="#images-section" onclick="showImagesPanel();"><img src="gfx/images.png" width="50" alt="Images"></a></li>
    <li id="information-main-button"><a href="#information-section" onclick="showInformationPanel();"><img src="gfx/info.png" width="50" alt="Information"></a></li>
   </ul>
   </div>

这是其中一个侧面板(其中有另一个菜单以方便导航):

    <div id="footnotes-section">
    <a href="#" onclick="showFootnotesPanel();" class="controller">&lt;</a>
    <hr id="line">
    <h3>Resources<br/><br/></h3>
    <div id="resources-menu-panel">
    <ul>
    <li id="footnotes-panel-button"><a href="#footnotes-section" onclick="showFootnotesPanel();"><img src="gfx/footnotes.png" width="50" alt="Footnotes"></a></li>
    <li id="references-panel-button"><a href="#references-section" onclick="showReferencesPanel();"><img src="gfx/references.png" width="50" alt="References"></a></li>
    <li id="images-panel-button"><a href="#images-section" onclick="showImagesPanel();"><img src="gfx/images.png" width="50" alt="Images"></a></li>
    <li id="information-panel-button"><a href="#information-section" onclick="showInformationPanel();"><img src="gfx/info.png" width="50" alt="Information"></a></li>
    </ul>
   </div>

   <hr id="line">
   <details open>
   <summary><h4><img src="gfx/footnotes.png" width="50" alt="Footnotes"><br/>Footnotes</h4></summary>
   [content]
   <h4><a href="#resources-menu">&uarr; Volver</a></h4>
   </details>
   </div>

这是对应侧面板的js函数:

    function showFootnotesPanel() {
    var elem = document.getElementById("footnotes-section");
    if (elem.classList) {
    console.log("classList supported");
    elem.classList.toggle("show");
    } else {
    var classes = elem.className;
    if (classes.indexOf("show") >= 0) {
      elem.className = classes.replace("show", "");
    } else {
      elem.className = classes + " show"; 
    }
    console.log(elem.className);
    }
    }

谢谢!

enter image description here

最佳答案

好的,我仍然不确定您想要什么,但我将其分解为一个基本布局以使其更简单。这是它的 fiddle 。 http://jsfiddle.net/wvoa69r5/1/

基本上你显示你想要的 div,然后像这样隐藏之前显示的 div:

$('#link1').click(function() {
  var left = $('#left-div1');
  var leftShow = $('.left-div.show');
  left.addClass('show');
  leftShow.removeClass('show');
});

关于javascript - 如何隐藏侧面板,使它们不相互重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32237858/

相关文章:

javascript - 简化三路比较 a < b < c || b < c < a || c < a < b;

javascript - jQuery - 检测自定义字体何时加载?

xml - 如何在html5中用滚动条显示大的xml值

css - Flexbox:多个容器, flex 元素上的容器?

javascript - 滚动后将 div 固定在顶部 - ios 移动设备上的问题

javascript - 编辑 :before from Javascript 的 CSS 内容

javascript - 确认离开 Wordpress 中的外部链接

javascript - 在调用回调之前如何等待异步创建的对象完全可用?

javascript - 将javascript onclick消息添加到php动态列表

c# - BundleConfig 正在捆绑我的 CSS 文件的旧版本