Files
sts-avto/public/common.js
2026-05-05 14:00:34 +05:00

64 lines
2.3 KiB
JavaScript

async function loadCompanyData() {
try {
const response = await fetch('/api/config');
const data = await response.json();
// Заполняем контакты в шапке
const headerContacts = document.querySelector('.contacts-header');
if (headerContacts) {
const phonesHtml = data.phones.map(phone => `<a href="tel:${phone.replace(/\D/g, '')}">${phone}</a>`).join(' | ');
headerContacts.innerHTML = `
<div>📞 ${phonesHtml}</div>
<div>✉️ <a href="mailto:${data.email}">${data.email}</a></div>
`;
}
// Заполняем футер
const footerAddress = document.getElementById('footer-address');
if (footerAddress) footerAddress.innerText = data.address;
const footerEmail = document.getElementById('footer-email');
if (footerEmail) footerEmail.innerHTML = `<a href="mailto:${data.email}">${data.email}</a>`;
const footerPhones = document.getElementById('footer-phones');
if (footerPhones) {
// Добавляем иконку 📞 перед каждым номером
footerPhones.innerHTML = data.phones.map(p => `📞 <a href="tel:${p.replace(/\D/g, '')}">${p}</a>`).join('<br>');
}
const disclaimerDiv = document.getElementById('disclaimer-text');
if (disclaimerDiv) {
disclaimerDiv.innerHTML = `<p>${data.disclaimer1}</p><p>${data.disclaimer2}</p>`;
}
} catch (err) {
console.error('Ошибка загрузки конфигурации:', err);
}
}
document.addEventListener('DOMContentLoaded', loadCompanyData);
// Scroll Animations
function initScrollAnimations() {
const animateElements = document.querySelectorAll('.animate-on-scroll, .animate-left, .animate-right, .animate-scale');
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const delay = entry.target.dataset.delay || 0;
setTimeout(() => {
entry.target.classList.add('animated');
}, parseInt(delay));
observer.unobserve(entry.target);
}
});
}, {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
});
animateElements.forEach(el => observer.observe(el));
}
document.addEventListener('DOMContentLoaded', () => {
initScrollAnimations();
});