113 lines
2.8 KiB
JavaScript
113 lines
2.8 KiB
JavaScript
// main script
|
|
(function () {
|
|
"use strict";
|
|
|
|
// Dropdown Menu Toggler For Mobile
|
|
// ----------------------------------------
|
|
const dropdownMenuToggler = document.querySelectorAll(
|
|
".nav-dropdown > .nav-link",
|
|
);
|
|
|
|
dropdownMenuToggler.forEach((toggler) => {
|
|
toggler?.addEventListener("click", (e) => {
|
|
e.target.closest('.nav-item').classList.toggle("active");
|
|
});
|
|
});
|
|
|
|
// Testimonial Slider
|
|
// ----------------------------------------
|
|
new Swiper(".testimonial-slider", {
|
|
spaceBetween: 24,
|
|
loop: true,
|
|
pagination: {
|
|
el: ".testimonial-slider-pagination",
|
|
type: "bullets",
|
|
clickable: true,
|
|
},
|
|
breakpoints: {
|
|
768: {
|
|
slidesPerView: 2,
|
|
},
|
|
992: {
|
|
slidesPerView: 3,
|
|
},
|
|
},
|
|
});
|
|
|
|
|
|
// modals
|
|
function toggle_modal(target, show) {
|
|
target.classList.toggle("hidden", !show);
|
|
body.classList.toggle("overflow-hidden", show);
|
|
body.setAttribute("modal", show ? target.id : "");
|
|
}
|
|
|
|
const body = document.querySelector("body");
|
|
const show_modal_buttons = document.querySelectorAll("[data-modal-show]");
|
|
show_modal_buttons.forEach((btn) => {
|
|
const target = btn.getAttribute('data-modal-show');
|
|
const modal = document.querySelector(`#${target}`);
|
|
if (modal) {
|
|
btn.addEventListener("click", (e) => {
|
|
toggle_modal(modal, true);
|
|
});
|
|
}
|
|
});
|
|
|
|
const hide_modal_buttons = document.querySelectorAll("[data-modal-hide]");
|
|
hide_modal_buttons.forEach((btn) => {
|
|
const target = btn.getAttribute('data-modal-hide');
|
|
const modal = document.querySelector(`#${target}`);
|
|
if (modal) {
|
|
btn.addEventListener("click", (e) => {
|
|
toggle_modal(modal, false);
|
|
});
|
|
}
|
|
});
|
|
|
|
const modal_bg = document.querySelectorAll(".modal-bg");
|
|
modal_bg.forEach((bg) => {
|
|
bg.addEventListener("click", (e) => {
|
|
if (e.target === bg) {
|
|
toggle_modal(bg, false);
|
|
}
|
|
});
|
|
});
|
|
|
|
document.addEventListener("keydown", (e) => {
|
|
if (e.key === "Escape") {
|
|
var modal_id = body.getAttribute("modal");
|
|
if(modal_id) toggle_modal(document.querySelector(`#${modal_id}`), false);
|
|
}
|
|
});
|
|
|
|
// Swipers
|
|
// ----------------------------------------
|
|
const swipers = document.querySelectorAll(".swiper-slider");
|
|
|
|
swipers.forEach((swiper) => {
|
|
new Swiper(swiper, {
|
|
spaceBetween: 24,
|
|
loop: true,
|
|
pagination: {
|
|
el: swiper.querySelector(".swiper-slider-pagination"),
|
|
type: "bullets",
|
|
clickable: true,
|
|
},
|
|
navigation: {
|
|
nextEl: swiper.querySelector(".swiper-button-next"),
|
|
prevEl: swiper.querySelector(".swiper-button-prev"),
|
|
},
|
|
breakpoints: {
|
|
768: {
|
|
slidesPerView: 2,
|
|
},
|
|
992: {
|
|
slidesPerView: 3,
|
|
},
|
|
},
|
|
});
|
|
});
|
|
})();
|
|
|
|
// c > js -devon
|