html - 如果您打开另一个弹出窗口,请关闭打开的弹出窗口
问题描述
嗨,我做了几个弹出窗口。要关闭弹出窗口,请按打开的弹出窗口。我想让如果你打开一个新的弹出窗口,然后另一个弹出窗口就会关闭。
例如,如果我打开一个弹出窗口 1。然后我打开弹出窗口 2,然后当弹出窗口 2 打开时,弹出窗口 1 关闭
这是我的html代码
<body style="text-align:center">
<br><br><br>
<div class="popup" onclick="popUp1()">Click me!
<span class="popuptext" id="myPopup1">Popup 1</span>
</div>
<div class="popup" onclick="popUp2()">Click me!
<span class="popuptext" id="myPopup2">Popup 2</span>
</div>
<div class="popup" onclick="popUp3()">Click me!
<span class="popuptext" id="myPopup3">Popup 3</span>
</div>
<script>
function popUp1() {
var popup = document.getElementById("myPopup1");
popup.classList.toggle("show");
}
function popUp2() {
var popup = document.getElementById("myPopup2");
popup.classList.toggle("show");
}
function popUp3() {
var popup = document.getElementById("myPopup3");
popup.classList.toggle("show");
}
</script>
</body>
这是我的CSS
.popup {
position: relative;
display: inline-block;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.popup .popuptext {
visibility: hidden;
width: 160px;
background-color: #555;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 8px 0;
position: absolute;
z-index: 1;
bottom: 125%;
left: 50%;
margin-left: -80px;
}
.popup .popuptext::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: #555 transparent transparent transparent;
}
.popup .show {
visibility: visible;
-webkit-animation: fadeIn 1s;
-moz-animation: fadeIn 1s;
-ms-animation: fadeIn 1s;
animation: fadeIn 1s;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity:1 ; }
}
谢谢
解决方案
我将尝试使用纯 JavaScript 来解释它,因为您没有像其他回复那样使用 jQuery。
show
此代码应删除所有具有该类的弹出窗口,并将该类添加show
到触发事件的那个。
function closeOpenPopups (e) {
var openpopups = document.querySelectorAll('.popup.show');
openpopups.forEach(function(){
this.classList.remove('show');
});
e.classList.add('show');
}
var popups = document.querySelectorAll('.popup');
您可以将其添加到 onclick 属性中,就像您在 HTML 上所做的一样
<div class="popup" onclick="closeOpenPopups()" >
...
</div>
希望能帮助到你,
推荐阅读
- sql - 如果校园名称包含“'Indiana”字样,我如何从 Campus 表中选择所有记录?
- android - 如何保存 SeekBar 的值并将其传递给其他活动?
- c# - 将 OracleRefCursor 转换为自定义 C# 对象列表
- machine-learning - 如何加快对 6,100,000 个特征的递归特征消除?
- windows - md5sum 抱怨回车符
- javascript - 为什么 npm run serve 在 Vue.js 上构建缓慢?
- microsoft-graph-api - 通过 MS GraphAPI 获取新电子邮件发送的状态
- python-3.x - CNN输出准确率低于50%
- c# - if/else 在两个不同的 for 循环中迭代相同的变量
- r - 将参数传递给一个函数,该函数由另一个函数在 R 中按其名称调用