Оптимизация 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, что позволяет повторно использовать логику анимации в разных частях приложения без необходимости залезать в «кишки» компонента, что делает компонент более универсальным.


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

19905Зачем древние египтяне строили круглые храмы? 19904Планета, на которой вы живёте, но почти не знаете 19903Может ли анализ крови остановить рак печени ещё до его начала? 19902Кто такие GopherWhisper и зачем им монгольские чиновники? 19901«Вояджер-1» готовится к манёвру «большой взрыв»: NASA отключает приборы ради выживания 19900Почему вокруг Чатемских островов появилось светящееся кольцо из планктона? 19899Как взлом Vercel начался с Roblox-скрипта на чужом компьютере 19898Кто лежит в шотландских гробницах каменного века? 19897Почему две англосаксонские сестра и брат были похоронены в объятиях 1400 лет назад? 19896Гормон GDF15: найдена причина мучительного токсикоза у беременных 19895Почему хакеры Harvester прячут вредоносный код в папке «Zomato Pizza»? 19894Робот-гуманоид Panther от UniX AI претендует на место в каждом доме 19893Artemis застряла на земле: NASA не может лететь на луну без новых скафандров 19892Почему 20 000 промышленных устройств по всему миру оказались под угрозой взлома? 19891Зачем египетская мумия «проглотила» «Илиаду»?
Ссылка