javascript - 如何为单页应用程序重新排列 div
问题描述
我正在构建一个单页网络应用程序。在这个文件中,我希望在启动时显示一个特定的 div。也许用户会按下一个按钮,一个新的 div 会替换它。
现在,在这种情况下,我正在使用 js 隐藏一个 div 并显示另一个。问题是,新的 div 出现在页面下方(因为它是在第一个 div 之后的 html 文件中写入的)。
当用户在 div 之间来回导航时,我如何使用 javascript 简单地将一个 div 替换为另一个?这是可能的和推荐的吗?
/* JS
When #firstButton is pressed, replace div #first with div #second
When #secondButton is pressed, replace the div #second with div #first
*/
#second {
visibility: hidden;
}
<div id="first">
<h1>First Page</h1>
<button id="firstButton">Go to second page</button>
</div>
<div id="second">
<h1>Second Page</h1>
<button id="secondButton">Go to first page</button>
</div>
解决方案
使用visibility: hidden
会导致您的元素仍然占用空间,这就是为什么您的“页面”似乎没有改变位置的原因。
切换到display: none
,可以使用 jQuery 轻松切换,.show()
如下.hide()
所示:
$("#firstButton").on("click", function() {
$("#first").hide();
$("#second").show();
});
$("#secondButton").on("click", function() {
$("#first").show();
$("#second").hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="first">
<h1>First Page</h1>
<button id="firstButton">Go to second page</button>
</div>
<div id="second" style="display: none;">
<h1>Second Page</h1>
<button id="secondButton">Go to first page</button>
</div>
推荐阅读
- weebly - 如何控制 Google Chrome 标签上的标题?
- excel - 根据条件复制行,并根据条件将这些行粘贴到不同的工作簿中(EXCEL VBA)
- google-chrome - Chromebook 照片访问权限
- sql - 当 2 行在某些列中具有相同的值时,使用其他行 account_no 设置一个新列
- php - 如何按最近的发布日期对 Wordpress 博客类别进行排序?
- angular - patchValue / setValue 对 FormGroup 没有影响
- arrays - 如何声明将与嵌套对象一起使用的模型?
- javascript - 图像未在带有参数的路线上加载,但在没有参数的路线上有效
- html - 具有指向 URL 的响应式图像链接
- apache-kafka - 分区的高水位线实际上是否比分区中最后一条消息的偏移量大一个?