2021-12-03 08:40:16 +03:00

192 lines
6.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$('a[href*="#order"]').each(function() {
$(this).on("click", function(e) {
e.preventDefault();
$([document.documentElement, document.body]).animate({
scrollTop: $("#order").offset().top - 80
}, 500);
})
});
document.addEventListener("DOMContentLoaded", function (event) {
// Main menu toggle
let menuToggleBtn = document.getElementsByClassName("nav_toggle")[0];
menuToggleBtn.addEventListener("click", (event) => {
document.getElementById("menu_list").classList.toggle("open");
});
// News Slider
const setupPrevNextBtns = (prevBtn, nextBtn, embla) => {
if (typeof prevBtn != "undefined" && prevBtn != null) {
prevBtn.addEventListener("click", embla.scrollPrev, false);
}
if (typeof nextBtn != "undefined" && nextBtn != null) {
nextBtn.addEventListener("click", embla.scrollNext, false);
}
};
const disablePrevNextBtns = (prevBtn, nextBtn, embla) => {
return () => {
if (embla.canScrollPrev()) prevBtn.removeAttribute("disabled");
else prevBtn.setAttribute("disabled", "disabled");
if (embla.canScrollNext()) nextBtn.removeAttribute("disabled");
else nextBtn.setAttribute("disabled", "disabled");
};
};
const newsWrapper = document.getElementById("news");
const newsSlider = document.querySelector(".news_slider_wrapper");
if (typeof newsSlider != "undefined" && newsSlider != null) {
let newsSliderOption = {
loop: false,
dragFree: true,
containScroll: "trimSnaps",
};
const prevBtn = newsWrapper.querySelector(".prev");
const nextBtn = newsWrapper.querySelector(".next");
const News = EmblaCarousel(newsSlider, newsSliderOption);
const disablePrevAndNextBtns = disablePrevNextBtns(prevBtn, nextBtn, News);
setupPrevNextBtns(prevBtn, nextBtn, News);
News.on("select", disablePrevAndNextBtns);
News.on("init", disablePrevAndNextBtns);
}
// Переключение расширенного фильтра в каталоге
/*
let richFilterToggle = document.getElementById("rich_filter_toggle");
if (typeof richFilterToggle != "undefined" && richFilterToggle != null) {
richFilterToggle.addEventListener("click", function (event) {
document.getElementById("filter").classList.toggle("visible");
document
.getElementById("catalog_small_filter")
.classList.toggle("hidden");
});
}
*/
// Контакты
let officeViewToggle = document.getElementById("officeViewToggle");
if (typeof officeViewToggle != "undefined" && officeViewToggle != null) {
officeViewToggle.querySelectorAll(".tab").forEach((tab) => {
tab.addEventListener("click", (event) => {
if (!event.currentTarget.classList.contains("active")) {
let tabAttr = event.currentTarget.getAttribute("data-view");
for (let sibling of tab.parentNode.children) {
sibling.classList.remove("active");
}
event.currentTarget.classList.add("active");
document.getElementById("map").classList.toggle("visible");
document.getElementById("offices").classList.toggle("visible");
}
});
});
}
// Слайдер в лизинге
const specialSliderWrapper = document.querySelector("#special_slider");
if (
typeof specialSliderWrapper != "undefined" &&
specialSliderWrapper != null
) {
document.querySelectorAll(".section_title")[0].classList.add("wp");
let specialSliderOption = {
loop: false,
dragFree: true,
containScroll: "trimSnaps",
};
const prevBtn = specialSliderWrapper.querySelector(".prev");
const nextBtn = specialSliderWrapper.querySelector(".next");
const specialSlider = EmblaCarousel(specialSliderWrapper, specialSliderOption);
const disablePrevAndNextBtns = disablePrevNextBtns(prevBtn, nextBtn, specialSlider);
setupPrevNextBtns(prevBtn, nextBtn, specialSlider);
specialSlider.on("select", disablePrevAndNextBtns);
specialSlider.on("init", disablePrevAndNextBtns);
}
// Слайдер в лизинге внутренний
const leasingSliderWrapper = document.querySelector("#leasing_slider");
if (
typeof leasingSliderWrapper != "undefined" &&
leasingSliderWrapper != null
) {
const leasingContainer = document.querySelector(".leasing_offer");
let leasingSliderOption = {
loop: false,
dragFree: true,
containScroll: "trimSnaps",
};
const prevBtn = leasingContainer.querySelector(".prev");
const nextBtn = leasingContainer.querySelector(".next");
const leasingSlider = EmblaCarousel(leasingSliderWrapper, leasingSliderOption);
const disablePrevAndNextBtns = disablePrevNextBtns(prevBtn, nextBtn, leasingSlider);
setupPrevNextBtns(prevBtn, nextBtn, leasingSlider);
leasingSlider.on("select", disablePrevAndNextBtns);
leasingSlider.on("init", disablePrevAndNextBtns);
}
// Слайдер с точками
const setupDotBtns = (dotsArray, embla) => {
dotsArray.forEach((dotNode, i) => {
dotNode.addEventListener("click", () => embla.scrollTo(i), false);
});
};
const generateDotBtns = (dots, embla) => {
const template = document.getElementById("embla-dot-template").innerHTML;
dots.innerHTML = embla.scrollSnapList().reduce(acc => acc + template, "");
return [].slice.call(dots.querySelectorAll(".embla__dot"));
};
const selectDotBtn = (dotsArray, embla) => () => {
const previous = embla.previousScrollSnap();
const selected = embla.selectedScrollSnap();
dotsArray[previous].classList.remove("is-selected");
dotsArray[selected].classList.add("is-selected");
};
const sliderWithFade = document.querySelector("#single_slider");
if (
typeof sliderWithFade != "undefined" &&
sliderWithFade != null
) {
let sliderWithFadeOption = {
loop: false,
skipSnaps: false
};
const singleSlider = EmblaCarousel(
sliderWithFade,
sliderWithFadeOption
);
const dots = document.querySelector(".slider_dots");
const dotsArray = generateDotBtns(dots, singleSlider);
const setSelectedDotBtn = selectDotBtn(dotsArray, singleSlider);
setupDotBtns(dotsArray, singleSlider);
singleSlider.on("select", setSelectedDotBtn);
singleSlider.on("init", setSelectedDotBtn);
}
// Выпадающие блоки
const dropdownBlock = document.querySelectorAll(".dropdown_block");
if (dropdownBlock.length > 0) {
for (i = 0; i < dropdownBlock.length; i++) {
dropdownBlock[i].querySelectorAll(".block_header").forEach((block) => {
block.addEventListener("click", (event) => {
block.closest(".dropdown_block").classList.toggle("open");
});
});
}
}
});