我正在研究非常轻的调查应用程序。此应用程序在第三世界国家/地区的连接非常有限的地方运行。

我们发现加载时间与用户参与度成正比(对我们非常重要)。

今天,我正在使用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>

10-07 18:15