Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Вступление
Давным давно…
- Скругленные рамки;
- Тени блоков и тени текста;
- Градиенты;
- Множественные фоны;
- Шрифты;
- Анимация.
Эволюция CSS
Критический путь рендеринга (CRP)
После того, как браузер получает HTML ответ от сервера, проходит еще множество
этапов пе...
4. Композиция
1. Стили
2. Каркас
3. Отрисовка
Reflow/Repaint
Reflow and repaint
Repaint
No reflow and repaint
Compositing
1. Страница делится на слои
2. Слои растеризируются
3. Слои выводятся на экран
GPU Accelerated Compositing
1. Страница делится на слои
2. Слои растеризируются в текстуры
3. Текстуры загружаются в GPU
4. Compositor инструктирует G...
Слой (композитный слой) — часть страницы, поддерево DOM.
Отрисовывается независимо, компонуется в GPU. Может растягиваться...
1. 3D-трансформации: translate3d, translateZ и т.д.
2. Элементы <video>, <canvas>, <iframe>
3. Анимация через transform и ...
JS + Полный контроль
+ Синхронизируются с частотой обновления экрана
- Забивают основной поток
+ Просты;
+ Свободны от осн...
В браузере откройте DevTools -> More tools и там выберите Layers. Этот пункт добавить в
список инструментов еще один пункт...
Перерисовка элемента
Отладка композитных слоев
Без композиции
Отладка шагов CRP
Отладка шагов CRP
С композицией
Отладка шагов CRP
Отладка шагов CRP
Неявная композиция: один или несколько не-композитных элементов, которые по
z-index находятся выше композитного элемента, ...
1. opacity
2. transform
3. filter
Все остальные свойства могут вызывать обновление текстур
Слои для анимации. Дружелюбный ...
Пример с движущимся элементом
● left (постоянные перерисовки)
● translate (2 перерисовки)
● will-change (0 перерисовки)
Сл...
● Относитесь с GPU как к кешу
● Подготавливайте текстуры заранее
● Избегайте неявной композиции
Советы
28
Any questions?
vitalii.kalashnikov.37 vitalii-kalashnikov-
347382113
@V1pBoy
Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13
Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13
Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13
Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13
Upcoming SlideShare
Loading in …5
×

of

Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 1 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 2 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 3 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 4 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 5 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 6 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 7 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 8 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 9 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 10 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 11 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 12 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 13 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 14 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 15 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 16 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 17 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 18 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 19 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 20 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 21 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 22 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 23 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 24 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 25 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 26 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 27 Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa Frontend Meetup #13 Slide 28
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

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

Download to read offline

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

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Как правильно делать анимацию и добиться 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

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

Views

Total views

161

On Slideshare

0

From embeds

0

Number of embeds

0

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×