В данном проекте реализована анимация звуковой волны – плавная белая синусоида на фоне ночного летнего неба. При клике по экрану на волне появляются корабли в красном, синем и зелёном цветах, которые медленно двигаются вдоль волны.
Интерфейс прост и интуитивно понятен. Пользователь получает мгновенную обратную связь – при нажатии на экран корабли добавляются к анимированной волне. Поддержка как мышиных, так и сенсорных событий обеспечивает кросс-платформенное взаимодействие.
Основной функционал включает:
– Отрисовку плавной, регулярно обновляемой синусоидальной волны;
– Добавление кораблей с помощью событий click и touchstart;
– Обновление положения кораблей вдоль волны с использованием современных возможностей JavaScript (ES6+);
– Оптимизацию анимации с помощью requestAnimationFrame.
Код написан с учетом лучших практик:
– Семантический HTML5 с понятной структурой;
– Внутреннее оформление с адаптивной вёрсткой;
– Четкое разделение функционала и стилей;
– Эффективное управление DOM и обработкой ошибок через window.onerror.