javascript - 如何使用 javascript 和 css 多次更改 div 的可见性?

标签 javascript html css django

我的应用程序中有一个弹出窗口:

<div id="modal"></div>

let modal = document.getElementById('modal')
modal.innerHTML = `
            <button class="close-button" onclick="close_modal()">Close</button>
        `

#modal{
        width: 30em;
        height: 24em;
        overflow: hidden;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        visibility: hidden;
    }

当我单击某个按钮时,会触发其中包含 modal.classList.add('open-modal') 的函数。

.open-modal{
        visibility: visible !important;
    }

close_modal 函数是:

function close_modal(){
        modal.classList.add('close-modal')
    }

CSS:

.close-modal{
        visibility: hidden !important;
    }

它一次就可以正常工作(我可以打开和关闭弹出窗口,但是当我第二次尝试打开它时却没有。为什么会发生这种情况以及如何解决它?

最佳答案

添加新类后,您必须从元素的类列表中删除之前的类。因此,在同时拥有两个类(class)后,模态似乎不再起作用。

例如

function changeVisibility(modal) {
 if(modal.classList.contains('open-modal')) {
   modal.classList.remove('open-modal');
   modal.classlist.add('close-modal');
 } else {
    modal.classList.remove('close-modal');
    modal.classList.add('open-modal')
 } 
} 
 

关于javascript - 如何使用 javascript 和 css 多次更改 div 的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74321873/

相关文章:

Javascript:当其他字段匹配某个单词时禁用文本字段

javascript - href 中的 Angular 绑定(bind)有效但 src 绑定(bind)无效?

当设备宽度小于 400 像素时,HTML/CSS 无法响应地工作

javascript - jQuery on click div 具有 100% 屏幕高度

javascript - Bootstrap 导航栏品牌无法将文本放在两行上并做出响应

javascript - Bootstrap - 键盘无法在动态生成的文本框软搜索菜单上工作

CSS: float 和周围的公共(public)区域(背景/边框可视化)或为什么 "overflow: hidden"?

javascript - 无法将本地存储上传到数据库

javascript - 将 JavaScript 数组高效地传递给 c/c++ 库并返回

html - node.js 使用express-hbs 在网页上渲染行