Successfully reported this slideshow.
Your SlideShare is downloading. ×

Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 28 Ad

Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13

Download to read offline

Анимация — неотъемлемая часть любого нынешнего веб-интерфейса. Виталий Калашников рассказывает про аппаратное ускорение анимаций, как использовать вычислительную технику при создании динамического веб-приложения. Как с его помощью заставить анимацию работать 60 кадров в секунду даже на мобильном устройстве и при этом не допустить падение браузера у пользователей. А также рассказывает про CSS vs JS анимации и сравнивает производительность.

Анимация — неотъемлемая часть любого нынешнего веб-интерфейса. Виталий Калашников рассказывает про аппаратное ускорение анимаций, как использовать вычислительную технику при создании динамического веб-приложения. Как с его помощью заставить анимацию работать 60 кадров в секунду даже на мобильном устройстве и при этом не допустить падение браузера у пользователей. А также рассказывает про CSS vs JS анимации и сравнивает производительность.

Advertisement
Advertisement

More Related Content

Slideshows for you (16)

Similar to Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 (20)

Advertisement

More from OdessaFrontend (20)

Recently uploaded (19)

Advertisement

Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13

  1. 1. Вступление
  2. 2. Давным давно…
  3. 3. - Скругленные рамки; - Тени блоков и тени текста; - Градиенты; - Множественные фоны; - Шрифты; - Анимация. Эволюция CSS
  4. 4. Критический путь рендеринга (CRP) После того, как браузер получает HTML ответ от сервера, проходит еще множество этапов перед отрисовкой пикселей на экране. Последовательность действий, которую должен пройти браузер для первичной отрисовки страницы, называется «путь критического рендеринга» или CRP.
  5. 5. 4. Композиция 1. Стили 2. Каркас 3. Отрисовка
  6. 6. Reflow/Repaint Reflow and repaint Repaint No reflow and repaint
  7. 7. Compositing 1. Страница делится на слои 2. Слои растеризируются 3. Слои выводятся на экран
  8. 8. GPU Accelerated Compositing
  9. 9. 1. Страница делится на слои 2. Слои растеризируются в текстуры 3. Текстуры загружаются в GPU 4. Compositor инструктирует GPU, как собрать конечное изображение GPU accelerated compositing GPU Accelerated Compositing
  10. 10. Слой (композитный слой) — часть страницы, поддерево DOM. Отрисовывается независимо, компонуется в GPU. Может растягиваться, перемещаться, скрываться (через прозрачность) без отрисовки. Paint — дорого Composite — дешево Слои
  11. 11. 1. 3D-трансформации: translate3d, translateZ и т.д. 2. Элементы <video>, <canvas>, <iframe> 3. Анимация через transform и opacity через CSS Transition Animation 4. position: fixed 5. will-change. 6. filter. Условия создания слоя
  12. 12. JS + Полный контроль + Синхронизируются с частотой обновления экрана - Забивают основной поток + Просты; + Свободны от основного потока + Синхронизируются с частотой обновления экрана CSS - Неконтролируемые: только пауза и запуск - Рассинхронизация JS vs CSS
  13. 13. В браузере откройте DevTools -> More tools и там выберите Layers. Этот пункт добавить в список инструментов еще один пункт слои. Отладка слоев
  14. 14. Перерисовка элемента
  15. 15. Отладка композитных слоев
  16. 16. Без композиции Отладка шагов CRP
  17. 17. Отладка шагов CRP
  18. 18. С композицией Отладка шагов CRP
  19. 19. Отладка шагов CRP
  20. 20. Неявная композиция: один или несколько не-композитных элементов, которые по z-index находятся выше композитного элемента, также становятся композитными, то есть отрисовываются в отдельное изображение, которое затем отправляется на GPU. Неявная композиция
  21. 21. 1. opacity 2. transform 3. filter Все остальные свойства могут вызывать обновление текстур Слои для анимации. Дружелюбный CSS
  22. 22. Пример с движущимся элементом ● left (постоянные перерисовки) ● translate (2 перерисовки) ● will-change (0 перерисовки) Слои для анимации
  23. 23. ● Относитесь с GPU как к кешу ● Подготавливайте текстуры заранее ● Избегайте неявной композиции Советы
  24. 24. 28 Any questions? vitalii.kalashnikov.37 vitalii-kalashnikov- 347382113 @V1pBoy

×