我正在研究非常轻的调查应用程序。此应用程序在第三世界国家/地区的连接非常有限的地方运行。
我们发现加载时间与用户参与度成正比(对我们非常重要)。
今天,我正在使用2个库-VueJS和自定义 bootstrap 构建。我想调用一个模式。但是模态要求添加Bootstrap Javascript和jQuery。这些库几乎使加载时间加倍。
如何在不添加这两个库的情况下打开模式?
最佳答案
@uday仅链接到CSS模式的链接是一个不错的技巧,但是如果您将#tag用于其他目的(例如,路由和参数传递),则可能会很尴尬。
因此,这是一个使用很少的JS实现非常相似的示例。我已尝试将代码段保持尽可能的小,以便轻松查看正在发生的情况。
var modal = document.querySelector(".modal");
var container = modal.querySelector(".container");
document.querySelector("button").addEventListener("click", function (e) {
modal.classList.remove("hidden")
});
document.querySelector(".modal").addEventListener("click", function (e) {
if (e.target !== modal && e.target !== container) return;
modal.classList.add("hidden");
});
.modal {
background-color: rgba(0,0,0,0.4); /* Transparent dimmed overlay */
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: table;
}
.modal.hidden {
display: none;
}
.modal .container {
display: table-cell;
text-align: center;
vertical-align: middle;
width: 200px;
}
.modal .body {
box-shadow: 5px 10px #888888;
display: inline-block;
background-color: white;
border: 1px solid black;
padding: 10px;
}
<button>Show Modal</button>
<div class="modal hidden">
<div class="container">
<div class="body">
<p>Click outside this box to close the modal.<p>
<p>You could of course add a close button etc</p>
<p>But this is left for the OP todo</p>
</div>
</div>
</div>