Учу JS. Попробовал написать свой Parallax плагин. Сравнил его нагрузку на ЦП с Parallax.js в диспетчере задач Chrome. Мой оказался в разы тяжелее. Ниже я опишу логику которой руководствовался. Как должно быть я понять не смог.
Вопроса два: Почему такая разница? И как должно быть?
Есть массив с объектами, которые нужно двигать. Каждое движение мыши рассчитывает новое положение для каждого объекта (через for(){}) и отправляет на отрисовку через:
requestId = requestAnimationFrame(animate)
Функция animate пробегается по отдельному массиву с новыми координатами
(через for(){}) и отрисовывает движение.
Каждый новый запрос на отрисовку сопровождается отменой предыдущего:
cancelAnimationFrame(requestId)
Посмотреть на функцию в работе можно здесь (2.3Mb)
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники