shkola/wp-content/themes/dekart/assets/js/camp.js
2026-05-11 21:15:48 +03:00

112 lines
4.2 KiB
JavaScript

var swiper = new Swiper(".camp-swiper-foto-thumbsSlider", {
spaceBetween: 10,
slidesPerView: 7,
freeMode: true,
watchSlidesVisibility: true,
watchSlidesProgress: true,
});
var swiper2 = new Swiper(".camp-swiper-foto", {
spaceBetween: 10,
slidesPerView: 1,
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
thumbs: {
swiper: swiper,
},
});
const btnCloseModalPrograms = document.querySelector('.btn-close-programs');
const btnCloseModalMentors = document.querySelector('.btn-close-mentors');
const modalPrograms = document.querySelector('.modal-programs');
const modalMentors = document.querySelector('.modal-mentors');
const modalCampRequestForm = document.querySelector('.modal-camp-request-form');
const b24template = document.querySelector('#b24-camp-template');
const b24container = document.querySelector('.b24-form-container');
btnCloseModalPrograms.addEventListener("click", function (event) {
modalPrograms.classList.remove('open');
});
btnCloseModalMentors.addEventListener("click", function (event) {
modalMentors.classList.remove('open');
});
document.addEventListener("click", function (event) {
const target = event.target;
if (target.classList.contains("btn-close-request-form-camp")) {
modalCampRequestForm.classList.add('hidden');
// clear bitrix24 form on close (ready for re-open)
b24container.innerHTML = '';
return;
}
const campBtn = target.closest('.btn-write-camp');
if (campBtn) {
if (campBtn.tagName === 'A') event.preventDefault();
// prevent footer bitrix24 loader
window.b24campLoaded = true;
// show modal
modalCampRequestForm.classList.remove('hidden');
// load Bitrix24 from template
if (b24template && !b24container.hasChildNodes()) {
const clone = document.importNode(b24template.content, true);
b24container.appendChild(clone);
}
return;
}
if (target.classList.contains("btn-program")) {
const card = target.closest('.programs__card');
modalPrograms.querySelector('.modal-programs__img').innerHTML = card.querySelector('.programs__image').outerHTML;
modalPrograms.querySelector('.programs__item_title').textContent = card.querySelector('.programs__name').textContent;
modalPrograms.querySelector('.programs__item_price').textContent = card.querySelector('.programs__price').textContent;
modalPrograms.querySelector('.programs__content').innerHTML = card.querySelector('.programs_content').innerHTML;
modalPrograms.classList.add('open');
return;
}
if (target.classList.contains("btn-mentors")) {
modalMentors.querySelector('.modal-programs__img').innerHTML = target.parentNode.querySelector('.mentors__item_img').outerHTML;
modalMentors.querySelector('.modal-mentors_name').textContent = target.parentNode.querySelector('.mentors__item_name').textContent;
modalMentors.querySelector('.modal-mentors_job').textContent = target.parentNode.querySelector('.mentors__item_text').textContent;
modalMentors.querySelector('.mentors__about-col_text').textContent = target.parentNode.querySelector('.mentor_education').textContent;
modalMentors.querySelector('.modal-mentors__directions').innerHTML = target.parentNode.querySelector('.HTMLdirection').innerHTML;
modalMentors.querySelector('.mentors__experience-col_text').textContent = target.parentNode.querySelector('.mentor_experience').textContent;
modalMentors.querySelector('.modal-additional__education_list').innerHTML = target.parentNode.querySelector('.mentor_add_experience').innerHTML;
modalMentors.classList.add('open');
return;
}
});
(function() {
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
const els = document.querySelectorAll('.section-reveal');
if (!els.length) return;
const o = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) {
e.target.classList.add('revealed');
o.unobserve(e.target);
}
});
}, { threshold: 0.15, rootMargin: '-80px 0px -80px 0px' });
els.forEach(el => o.observe(el));
})();
document.querySelectorAll('.box__accordion_label').forEach(function(label) {
label.addEventListener('keydown', function(e) {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
this.click();
}
});
});