Тяжелая JavaScript анимация (parallax)

185
13 июля 2017, 02:38

Учу JS. Попробовал написать свой Parallax плагин. Сравнил его нагрузку на ЦП с Parallax.js в диспетчере задач Chrome. Мой оказался в разы тяжелее. Ниже я опишу логику которой руководствовался. Как должно быть я понять не смог.
Вопроса два: Почему такая разница? И как должно быть?

Есть массив с объектами, которые нужно двигать. Каждое движение мыши рассчитывает новое положение для каждого объекта (через for(){}) и отправляет на отрисовку через:
requestId = requestAnimationFrame(animate)

Функция animate пробегается по отдельному массиву с новыми координатами
(через for(){}) и отрисовывает движение.
Каждый новый запрос на отрисовку сопровождается отменой предыдущего:
cancelAnimationFrame(requestId)

Посмотреть на функцию в работе можно здесь (2.3Mb)

READ ALSO
Как отслеживать, а затем скрывать или показывать при определенных условиях элементы

Как отслеживать, а затем скрывать или показывать при определенных условиях элементы

Имеется страница, на которой находится n-ое кол-во tabs(вкладок), на каждой вкладке есть автоматически создаваемый элемент в виде кнопки "Удалить"...

204
Многоуровнёвое меню в массиве

Многоуровнёвое меню в массиве

Нужно сделать трёхуровнёвое меню для интернет-магазина, которое будет открываться по клику

275
Воспроизведение HTML5 видео на Android

Воспроизведение HTML5 видео на Android

На Chrome для Android не воспроизводится автоматическиПодскажите, пожалуйста, как исправить?

270