Оптимизация Frontend: отказ от GSAP в пользу CSS и Intersection Observer

Сложные анимации на GSAP могут привести к проблемам производительности, особенно на слабых ПК. Простая анимация кнопки, основанная на изменении размера и прозрачности, легко реализуется на чистом CSS с использованием transition, что снижает вес приложения и повышает плавность работы.
Оптимизация Frontend: отказ от GSAP в пользу CSS и Intersection Observer
Изображение носит иллюстративный характер

Для отслеживания видимости кнопки вместо ScrollTrigger из GSAP можно использовать библиотеку react-intersection-observer, которая предоставляет хук useInView. Этот хук позволяет просто определить, когда кнопка попадает в область видимости пользователя, и запускать анимацию. Библиотека react-intersection-observer гораздо легче, чем GSAP.

Первоначальный вариант кода с GSAP был сложным и занимал 85 строк, в то время как новый вариант, использующий CSS и react-intersection-observer, всего 36 строк. При этом, анимация также стала более гибкой и понятной для рефакторинга. Чтобы анимация срабатывала после прокрутки пользователем определенной части секции, используется контейнер, оборачивающий контент, и свойство threshold.

Для улучшения читаемости и соблюдения принципа Open/Closed, логика анимации и видимости была вынесена в контекст React, что позволяет повторно использовать логику анимации в разных частях приложения без необходимости залезать в «кишки» компонента, что делает компонент более универсальным.


Новое на сайте

19191Могут ли безобидные текстовые промпты для нейросетей стать самым разрушительным... 19190Как 9 древних правил Конфуция помогают обрести эмоциональный интеллект и победить стресс... 19189Почему экономика, а не высокие идеалы, стала истинным двигателем сопротивления в... 19188Критическая уязвимость в решениях BeyondTrust спровоцировала глобальную волну кражи... 19187Эволюция угроз: атака на цепочку поставок ИИ-ассистента Cline CLI через уязвимость... 19186Как фальшивая проверка Cloudflare в кампании ClickFix скрыто внедряет новый троян... 19185Почему гендерно-нейтральные корпоративные политики становятся главным инструментом... 19184Как искусственный интеллект уничтожил временной зазор между обнаружением уязвимости и... 19183Банковский троян Massiv маскируется под IPTV для захвата контроля над Android 19182Как шпионская кампания CRESCENTHARVEST использует социальную инженерию для кражи данных... 19181Как критическая уязвимость в телефонах Grandstream открывает хакерам доступ к... 19180Почему операционная непрерывность становится единственным ответом на перманентную... 19179Критические уязвимости в популярных расширениях VS Code угрожают миллионам разработчиков 19178Как внедрить интеллектуальные рабочие процессы и почему 88% проектов ИИ терпят неудачу? 19177Критическая уязвимость нулевого дня в Dell RecoverPoint открывает злоумышленникам полный...
Ссылка