/
oks14
/
cdg_practice
Обзор
Документация
Войти
/
oks14
/
cdg_practice
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
script.js
58 строк
2 KB
Андрей Таратайцев
added corrections due to comments
15 дек 2025, 17:47
15 дек 2025, 17:47
defe8f7
Код
Авторство
О чём код?
function isElementInViewport(el) { const rect = el.getBoundingClientRect(); return ( rect.top <= window.innerHeight * 0.85 && rect.bottom >= 0 ); } function handleScrollAnimation() { document.querySelectorAll('section').forEach(section => { if (isElementInViewport(section)) { section.classList.add('visible'); } }); } function handleHeaderScroll() { const header = document.querySelector('.header'); if (window.scrollY > 100) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } } document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId === '#') return; const targetElement = document.querySelector(targetId); if (targetElement) { window.scrollTo({ top: targetElement.offsetTop - 80, behavior: 'smooth' }); } }); }); document.querySelector('.contact-form').addEventListener('submit', function(e) { e.preventDefault(); alert('Спасибо! Ваше сообщение отправлено. Я свяжусь с вами в ближайшее время.'); this.reset(); }); window.addEventListener('DOMContentLoaded', () => { document.querySelector('.hero').classList.add('visible'); handleScrollAnimation(); handleHeaderScroll(); }); window.addEventListener('scroll', () => { handleScrollAnimation(); handleHeaderScroll(); });