Задать вопрос

Как исправить производительность анимации?

Такие дела.

Есть код анимации:
if ( $('.landing__superdesign').length ) {
        let f = $('.landing__superdesign-f');
        let s = $('.landing__superdesign-s');
        let t = $('.landing__superdesign-t');

        let parallax = () => {
            let scrollTop = $('.wrap').scrollTop();
            f.css('transform', 'translateY(' + scrollTop/10 + 'px)');
            s.css('transform', 'translateY(' + -scrollTop/10 + 'px)');
            t.css('transform', 'rotate(' + (45 + scrollTop/10) + 'deg)');
            window.requestAnimationFrame(parallax);
        };
        window.requestAnimationFrame(parallax);
    }

три элемента, два движутся по вертикали, один крутится вокруг своей оси (элементы - простые фигуры: два прямоугольника и линия)

Но вот как только я начинаю скроллить страницу, макбук врубает кулеры, греется и страница слегка подлагивает.
Помимо этой анимации есть еще почти такая же только для фоновой картинки - она движется по горизонтали с помощью backgriund-position. Без анимированных фигур страница не фризит, с фигурами уже начинается боль.

Что не так и как облегчить анимацию?
  • Вопрос задан
  • 265 просмотров
Подписаться 3 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
twobomb
@twobomb
А зачем 60 раз в секунду крутить эту функцию? Нельзя повесить на какое нибудь событие скролла или т.п.? Параметры то вроде бы не изменяются.
Типа такого
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы