html - 尽管有其他 div 切换条件,但仍修复 div 的位置
问题描述
我的 html 中有总数3 Divs
。Div#1
并且Div#2
是互斥的。Div#1
的高度大于Div#2
。在Div#3
中,我有 2 个按钮,我可以使用它们来决定Div
显示哪个Div#1
或Div#2
. 单击按钮时,我正在处理Divs
JavaScript 中的外观逻辑。由于 Div#1 和 Div#2 的高度不同,单击按钮时Button#1
,Button#2
在 myDiv#3
中,将根据orDiv#3
的高度从其原始位置上下移动。我所期望的是,无论屏幕上的可见性如何,都应该始终保持原样,而不是根据和的高度上下移动Div#1
Div#2
Div#1
Div#2
Div#3
Div#1
Div#2
. 请查找 plunker CSS Issue以供参考。在这里,当我单击时Button#1
,Div#3
向上移动,当我单击时Button#2
,Div#3
向下移动,这不应该发生,Div#3
应该始终保持在其原始位置。
下面是我的 html、CSS 和 JavaScript:
<div id="div1" class="items-list">
<ul>
<li>Chair 1 </li>
<li>Chair 2 </li>
<li>Chair 3 </li>
<li>Chair 4 </li>
<li>Chair 5 </li>
<li>Chair 6 </li>
<li>Chair 7 </li>
<li>Chair 8 </li>
<li>Chair 9 </li>
<li>Chair 10</li>
<li>Chair 11 </li>
<li>Chair 12 </li>
</ul>
</div>
<div id="div2" class="loader hide">
<p> loading ...
<p>
</div>
<div id="div3" class="action-items">
<div class="items-change" onclick="changeList()">
<button> Button1</button>
</div>
<div class="original">
<button onclick="displayOriginalList()"> Button2</button>
</div>
</div>
CSS:
.items-list {
height: 250px;
}
.loader {
height: 50px;
}
.action-items {
display: flex;
justify-content: space-between;
}
.hide {
display: none;
}
JavaScript:
function changeList() {
const $itemsList = document.querySelector('#div1');
const $loader = document.querySelector('#div2');
$itemsList.classList.add('hide');
$loader.classList.remove('hide');
}
function displayOriginalList () {
const $itemsList = document.querySelector('#div1');
const $loader = document.querySelector('#div2');
$itemsList.classList.remove('hide');
$loader.classList.add('hide');
}
解决方案
推荐阅读
- javascript - 使用 Parcel 有条件地加载 Javascript 不起作用
- javascript - JS无法连接MySQL数据库
- javascript - 使用 node.js 读取/写入类型化数组到文件
- c++ - 如何在 C++ 中获取 std:vectors 的频率?
- javascript - 如何在javascript中过滤嵌套对象属性并打印新对象
- mysql - MYSQL InnoDB 集群连接字符串参数
- amazon-cognito - Amplify/Cognito 没有在 Pinpoint 中显示分析数据
- ios - CoreData:如何获取子对象?
- apache - 重写 XAMPP VirtualHost 中的 URL
- r - 从公共 github repro 安装 R 包时出现错误 404