使用按钮在两个 div 之间切换
Toggle between two divs using a button
基本上我的 HTML 页面上有 2 个 div,我正在尝试使用 HTML 上的按钮创建一个在两者之间切换的功能。一个按钮将切换到 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时,我应该如何定位它们?我应该给他们相同的位置,并依靠函数在两者之间切换吗?
这有点原始,但它可以做你想做的事,我已经尽力实现这种切换行为的最佳策略,与 React 之类的东西相比,这在 vanilla JS 中很乏味。
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,这取决于你,但如果他们切换,我会假设你给他们相同的定位。
基本上我的 HTML 页面上有 2 个 div,我正在尝试使用 HTML 上的按钮创建一个在两者之间切换的功能。一个按钮将切换到 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时,我应该如何定位它们?我应该给他们相同的位置,并依靠函数在两者之间切换吗?
这有点原始,但它可以做你想做的事,我已经尽力实现这种切换行为的最佳策略,与 React 之类的东西相比,这在 vanilla JS 中很乏味。
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,这取决于你,但如果他们切换,我会假设你给他们相同的定位。