37 lines
961 B
JavaScript
37 lines
961 B
JavaScript
(function () {
|
|
var root = document.querySelector("[data-download-pop]");
|
|
if (!root) return;
|
|
|
|
var openers = document.querySelectorAll("[data-download-open]");
|
|
var closers = root.querySelectorAll("[data-download-close]");
|
|
var previousOverflow = "";
|
|
|
|
function open(event) {
|
|
if (event) {
|
|
event.preventDefault();
|
|
}
|
|
root.classList.add("is-open");
|
|
previousOverflow = document.body.style.overflow;
|
|
document.body.style.overflow = "hidden";
|
|
}
|
|
|
|
function close() {
|
|
root.classList.remove("is-open");
|
|
document.body.style.overflow = previousOverflow;
|
|
}
|
|
|
|
Array.prototype.forEach.call(openers, function (el) {
|
|
el.addEventListener("click", open);
|
|
});
|
|
|
|
Array.prototype.forEach.call(closers, function (el) {
|
|
el.addEventListener("click", close);
|
|
});
|
|
|
|
document.addEventListener("keydown", function (event) {
|
|
if (event.key === "Escape" && root.classList.contains("is-open")) {
|
|
close();
|
|
}
|
|
});
|
|
})();
|