64 lines
2.3 KiB
JavaScript
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();
|
|
}); |