| Server IP : 185.252.147.100 / Your IP : 216.73.217.33 Web Server : nginx/1.27.3 System : Linux mitrofanov.ru 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 User : mitr ( 1000) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/html/metal.mitrofanov.ru/wordpress/wp-content/themes/generatepress_child/ |
Upload File : |
( () => {
//toggle mobile menu
const menuLinks = document.getElementById("primary-menu").querySelectorAll('.menu-item a'),
htMl = document.documentElement,
menuWrapper = document.getElementById('mobile-menu-control-wrapper'),
naVi = document.getElementById('site-navigation');
menuLinks.forEach(link => {
link.addEventListener('click', (e) => {
htMl.classList.remove('mobile-menu-open');
menuWrapper.classList.remove('toggled')
naVi.classList.remove('toggled')
});
})
//contact form
document.addEventListener('click', function(event) {
let handler = event.target.getAttribute('data-click');
if (!handler) return;
fetchForm(event.target.dataset.id);
});
const fetchForm = async(id) => {
const form = document.getElementById('form-' + id),
contactButton = form.querySelector('#contactbutton-' + id);
form.querySelector('#contact-msg-' + id).innerHTML = '';
form.querySelector('#notsent-msg-' + id).innerHTML = '';
contactButton.disabled = true;
const data = new FormData(form.querySelector('form'));
data.append('formid', id);
const response = await fetch(da_object.ajax_url, {
method: "POST",
mode: "same-origin",
cache: "no-cache",
credentials: "same-origin",
referrerPolicy: "origin",
body: data,
});
const res = await response.json();
if (response.ok) {
contactButton.disabled = false;
form.querySelector('#name-error-' + id).innerHTML = res.name_error ?? '';
form.querySelector('#phone-error-' + id).innerHTML = res.phone_error ?? '';
form.querySelector('#email-error-' + id).innerHTML = res.email_error ?? '';
form.querySelector('#task-error-' + id).innerHTML = res.task_error ?? '';
form.querySelector('#contact-msg-' + id).innerHTML = res.success ?? '';
form.querySelector('#notsent-msg-' + id).innerHTML = res.notsent ?? '';
} else {
form.querySelector('#notsent-msg-' + id).innerHTML = 'Произошла ошибка, мы уже её устраняем! А пока можете связаться с нами другими способами.';
}
}
//sliders
const sliders = document.querySelectorAll('.snap-slider-wrapper');
window.addEventListener("load", (event) => checkSliders(sliders) );
window.addEventListener("resize", (event) => checkSliders(sliders) );
function checkSliderWidth(slider){
let totalWidth = 0;
const allElements = slider.querySelector('.snap-slider').children;
Array.from(allElements).forEach(element => {
//totalWidth += element.offsetWidth;
const style = element.currentStyle || window.getComputedStyle(element);
//console.log( style );
totalWidth += ( element.offsetWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight) );
});
//console.log( 'totalWidth ' + totalWidth);
if ( 1360 >= totalWidth) {
return false;
} else {
return true;
}
}
function checkSliders(sliders) {
if(sliders && typeof window.IntersectionObserver !== 'undefined') {
// const slidersObserver = new IntersectionObserver(entries => {
// entries.forEach(elem => {
// const isSlider = checkSliderWidth(elem.target);
// if ( isSlider) {
// //if (elem.isIntersecting) {
// elem.target.classList.add('thisisslider');
// startSnapSlider(elem.target);
// //}
// } else {
// elem.target.classList.remove('thisisslider');
// }
// slidersObserver.unobserve(elem.target);
// });
// });
sliders.forEach(slider => {
const isSlider = checkSliderWidth(slider);
if ( isSlider) {
slider.classList.add('thisisslider');
startSnapSlider(slider);
} else {
slider.classList.remove('thisisslider');
}
//slidersObserver.observe(slider)
} );
} else {
return;
}
}
// function is_touch_enabled() {
// return ( 'ontouchstart' in window ) ||
// ( navigator.maxTouchPoints > 0 ) ||
// ( navigator.msMaxTouchPoints > 0 );
// }
// if( is_touch_enabled() ) {}
//get slider scroll-padding
function sPad(s) {
const style = s.currentStyle || window.getComputedStyle(s);
return parseInt(style.scrollPadding) || 0;
}
// main function
function startSnapSlider(sliderWrapper){
const slider = sliderWrapper.querySelector('.snap-slider'),
slides = Array.from( sliderWrapper.querySelectorAll('.snap-slider .gb-query-loop-item') ),
leftNav = sliderWrapper.querySelector('.leftnav'),
rightNav = sliderWrapper.querySelector('.rightnav'),
current = [0];
let spad = sPad(slider);
window.addEventListener("resize", () => {
spad = sPad(slider);
});
const observer = new IntersectionObserver(entries => {
entries.forEach(elem => {
if (elem.isIntersecting && elem.intersectionRatio >= 0.9) {
current.push(slides.indexOf(elem.target));
};
observer.unobserve(elem.target);
});
observer.disconnect();
if ( current[0] == 0 ) {
sliderWrapper.classList.add('onstart')
} else {
sliderWrapper.classList.remove('onstart')
}
if ( current[current.length - 1] === slides.length - 1 ) {
sliderWrapper.classList.add('onend')
} else {
sliderWrapper.classList.remove('onend')
}
});
slides.forEach(slide => observer.observe(slide) );
slider.addEventListener('scrollend', () => {
current.length = 0;
slides.forEach(slide => {
observer.observe(slide);
});
current.sort();
});
leftNav.addEventListener('click', (e) => {
e.preventDefault();
const left = current[0];
if (left >= 1) {
slider.scrollTo({
left: slides[left-1].offsetLeft - spad,
behavior: 'smooth'
});
}
}, true);
rightNav.addEventListener('click', (e) => {
e.preventDefault();
const left = current[0];
if (slides.length - 1 > current[current.length - 1]) {
slider.scrollTo({
left: slides[left+1].offsetLeft - spad,
behavior: 'smooth'
});
}
}, true);
}
} )();