pазмер контейнера devicePixelRatio
20
Каким должен быть размер растрового изображения?
Slide 21
Slide 21 text
Чтобы везде работало
21
Slide 22
Slide 22 text
Когда SVG заходят хорошо
22
Часть изображения можно
представить как набор
геометрических примитивов
Есть интерактивность
Нужно цеплять маркеры к фону
Нужно много размеров
Slide 23
Slide 23 text
23
Со временем в голове сформируется нужная связь и
потребность в экспериментах снизится
28
M - начало пути
L - линия (V, H)
C - кривая (S, Q, T)
A - дуга
Z - замыкаем путь
Slide 29
Slide 29 text
SVG можно морфить
flubber отлично морфит
29
Slide 30
Slide 30 text
JavaScript - анимации
JS - анимации выполняются в том
же “потоке” что и основной JS
requestAnimationFrame —
обязательно нужно использовать,
но он никогда не сработает если
основной поток занят
У нас всего 16.666667 ms :)
30
Slide 31
Slide 31 text
31
Slide 32
Slide 32 text
Пример с печенькой
Slide 33
Slide 33 text
width and height
33
Original w/o width & height width=30vh
Насколько округлять?
37
Надо учитывать: container size, devicePixelRatio, inner
transformations.
Начитать можно с :
1 знак - контейнер совпадает с размером svg, 2 знака —
контейнер в 10 раз больше …etc
Slide 38
Slide 38 text
Печенька с друзьями
38
Slide 39
Slide 39 text
Печенька с друзьями
39
Slide 40
Slide 40 text
Печенька с друзьями
40
Slide 41
Slide 41 text
Сюрпризы внутри SVG
41
Slide 42
Slide 42 text
Сюрпризы внутри SVG
42
Slide 43
Slide 43 text
Как инлайнить SVG
import React from "react";
import Logo from "./logo.svg";
const App = () => ;
export default App;
43
сreate-react-app использует
https:/
/github.com/smooth-code/svgr
Slide 44
Slide 44 text
Мы инлайним SVG чтобы с ними было
yдобно работать
44
Slide 45
Slide 45 text
Шевелящийся контент
45
Slide 46
Slide 46 text
Видео
46
Slide 47
Slide 47 text
ffmpeg - наш классный и универсальный инструмент
47
Анимируй - трансформируй (transform)
56
.animated {
transform: ... ;
}
Все что делает
transform: (translate,
rotate, scale, skew)
можно описать при
помощи матрицы
Процессинг и трансформация изображений
• Обрезать картинку
• Обнаружить предмет
• Применить затейливый фильтр (cместить цвета, etc)
• Что-нибудь измерить
68
При помощи можно:
Slide 69
Slide 69 text
Пиксель измеряющий
69
Slide 70
Slide 70 text
Все работает быстро
70
Slide 71
Slide 71 text
WebGL
71
Slide 72
Slide 72 text
72
56ms x6 slowdown
Slide 73
Slide 73 text
Почему спецеэффекты в web - редкость?
Низкая конверсия
Никто не верит в свои силы
Нам лень :)
73
Slide 74
Slide 74 text
Путь к успеху
Добавьте осознанности к
процессу
Используйте правильные
инструменты
Сравнивайте результаты
Не бойтесь экспериментировать
Почитайте спец. литературу :)
74