TGViewer
Webest Webest @webest · 147 subscribers
Post #50 99
Принципы анимации #2
Скрывайте контент на виду
⠀
Используйте «pointer-events» в CSS: значение «none» наряду с нулевой непрозрачностью для сокрытия элементов.
⠀
Данный метод плохо работает в старых браузерах, но если вы проектируете для webkit или других современных браузерных движков, то он сделает вашу жизнь намного проще.
⠀
В далёкие времена, когда анимации обрабатывались при помощи jQuery animate(), основная сложность при работе с эффектом fade заключалась в необходимости переключения значения свойства display: активировать none для прекращения эффекта в нужный момент. Слишком рано и анимация не будет завершена, слишком поздно и вы получаете невидимый элемент с нулевым значением opacity, перекрывающий страницу. Требовался обратный отклик для очистки экрана после завершения анимации.
⠀
Свойство CSS «pointer-events» (существует давно, но почему-то используют его нечасто) служит для того, чтобы сделать вещи нечувствительными к кликам мышью и другим взаимодействиям. Так, будто их вообще нет на странице. Это свойство может быть легко включено/выключено посредством CSS. При работе оно не прерывает анимацию и не влияет на рендеринг/видимость элементов.
⠀
Комбинируя эту вещь с нулевым значением opacity, мы получаем тот же эффект, что даёт «display: none», но без влияния на производительность при запуске новых циклов рендеринга анимации. Если необходимо скрыть элемент из поля зрения, я обычно выставляю нулевую непрозрачность и выключаю pointer-events. После этого могу забыть о нём, зная, что всё можно легко вернуть обратно и ничего не будет мешать производительности страницы.
⠀
Этот приём особенно хорошо работает с элементами, имеющими абсолютное позиционирование, поскольку в таком случае вы можете быть уверены в том, что они не оказывают никакого влияния на все остальные участки макета и элементы страницы.
⠀
Также это даёт вам намного большую свободу действий, поскольку выбор времени начала/прекращения анимации в таком случае может быть и не очень точным. Даже если вы немного ошибётесь с таймингами, ничего страшного не произойдёт. Пользователь просто не сможет ничего нажать до того, как анимация завершится.
More from @webest
  1. Oct 6, 202616 октября 2026 приглашаем на масштабную конференцию-выставку по цифровизации и автоматиза…
  2. Sep 29, 2026Будущее электронной коммерции — уже этой осенью в Москве В 2026 рынок ecom столкнулся со м…
  3. Sep 28, 2026Как мы вернули предпросмотр документов в Битрикс24 без выхода в интернет В новой статье Ма…
  4. Sep 24, 2026Показали ГардПрайс и решения Webest на Е-РИТЕЙЛ ФОРУМ 2026 в Москве На стенде рассказывали…
  5. Sep 21, 20263–4 октября в Санкт-Петербурге будет шумно! XVI IT-конференция «Стачка» собирает 1500+ уча…
  6. Sep 16, 2026Приглашаем на наш стенд на Е-РИТЕЙЛ ФОРУМ 2026 Ждем вас на Международном Форуме электронно…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →