代码之家  ›  专栏  ›  技术社区  ›  Fadrick

使用按钮[duplicate]在两个div之间切换

  •  0
  • Fadrick  · 技术社区  · 3 年前

    基本上,我的HTML页面上有两个div,我正在尝试创建一个函数,使用HTML上的按钮在这两个div之间切换。一个按钮将切换到div 2,另一个按钮将切换回div 1,如下代码所示:

    <button id="toggle-to-2">Toggle to div 2</button>
    <button id="toggle-to-1">Toggle to div 1</button>
    
    <div id="div-1">
    This is div 1
    </div>
    
    <div id="div2">
    This is div 2
    </div>
    
    

    另外,在使用CSS时,我应该如何定位它们?我应该给它们相同的位置,并依靠函数在两者之间切换吗?

    1 回复  |  直到 3 年前
        1
  •  2
  •   Asplund Ransh Anand    3 年前

    这有点原始,但它做了你想做的事情,我已经尽了最大努力来实现这种切换行为的最佳策略,这在vanilla JS中与React之类的东西相比是乏味的。

    const toggleTo2 = document.getElementById("toggle-to-2");
    const toggleTo1 = document.getElementById("toggle-to-1");
    
    const div1 = document.getElementById("div-1");
    const div2 = document.getElementById("div2");
    
    const hide = el => el.style.setProperty("display", "none");
    const show = el => el.style.setProperty("display", "block");
    
    hide(div2);
    hide(toggleTo1);
    
    toggleTo2.addEventListener("click", () => {
      hide(div1);
      hide(toggleTo2);
      show(toggleTo1);
      show(div2);
    });
    
    toggleTo1.addEventListener("click", () => {
      hide(div2);
      hide(toggleTo1);
      show(toggleTo2);
      show(div1);
    });
    <button id="toggle-to-2">Toggle to div 2</button>
    <button id="toggle-to-1">Toggle to div 1</button>
    
    <div id="div-1">
    This is div 1
    </div>
    
    <div id="div2">
    This is div 2
    </div>

    至于CSS,这取决于你,但如果他们切换,我会假设你给他们相同的定位。