Solid Transition Group¶
Solid Transiton Group - это библиотека анимации, предназначенная для создания плавных переходов между состояниями. Это означает, что с ее помощью легче анимировать элементы, входящие и выходящие из DOM.
Установка¶
1 |
|
или
1 |
|
Transition¶
Компонент <Transition>
- это компонент-обертка, который обеспечивает эффекты перехода для одного дочернего компонента. Компонент <Transition>
применяет поведение перехода только к обернутому внутри него содержимому; он не создает дополнительного элемента DOM и не отображается в проверяемой иерархии компонентов.
Приведем пример простого перехода с использованием CSS- и JS-анимации:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Вот как выглядит CSS для 'slide-fade'
:
1 2 3 4 5 6 7 8 9 |
|
Свойства¶
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
name | string | undefined | Имя перехода, используемое для генерации имен CSS-классов переходов. Например, имя fade будет автоматически расширяться до fade-enter , fade-enter-active , fade-exit , fade-exit-active . |
appear | boolean | false | Применять ли переход при начальном рендеринге компонента. |
mode | 'in-out', 'out-in' | 'simultaneous' | Режим перехода, который управляет временной последовательностью переходов выхода/входа. |
enterActiveClass | string | undefined | Имя CSS-класса, который будет применяться к элементу во время перехода enter. |
enterClass | string | undefined | Имя класса CSS, применяемое к элементу перед переходом enter. |
enterToClass | string | undefined | Имя класса CSS, которое будет применяться к элементу после перехода enter. |
exitActiveClass | string | undefined | Имя CSS-класса, применяемое к элементу во время перехода exit. |
exitClass | string | undefined | Имя CSS-класса, применяемого к элементу перед переходом на выход. |
exitToClass | string | undefined | Имя класса CSS, которое будет применяться к элементу после перехода выхода. |
События¶
Имя | Тип | Описание |
---|---|---|
onEnter | (el:Element, done: () => void) => void | Функция обратного вызова, которая будет вызвана, когда начнется переход enter . |
onBeforeEnter | (el:Element) => void | Функция обратного вызова, которая будет вызвана до начала перехода enter . |
onAfterEnter | (el:Element) => void | Функция обратного вызова, которая будет вызвана после начала перехода enter . |
onExit | (el:Element, done: () => void ) => void | Функция обратного вызова, которая будет вызвана после начала перехода exit . |
onBeforeExit | (el:Element) => void | Функция обратного вызова, которая будет вызвана перед началом перехода exit . |
onAfterExit | (el:Element) => void | Функция обратного вызова, которая будет вызвана после начала перехода выхода. |
TransitionGroup¶
<TransitionGroup>
- это компонент-обертка, который обеспечивает эффекты перехода для нескольких дочерних компонентов. Компонент <TransitionGroup>
применяет поведение перехода только к содержимому, находящемуся внутри обертки; он не создает дополнительного элемента DOM и не отображается в проверяемой иерархии компонентов.
<TransitionGroup>
поддерживает перемещение переходов с помощью трансформации CSS. При изменении положения дочернего компонента на экране после обновления к нему будет применен перемещаемый CSS-класс (автоматически сгенерированный из атрибута name или настроенный с помощью атрибута move-class). Если в момент применения класса перемещения свойство CSS transform имеет значение "transition-able", то элемент будет плавно анимирован до места назначения с использованием техники FLIP.
1 2 3 4 5 6 7 |
|
Приведенный выше код будет выдвигать каждый элемент на экран при добавлении его в список или при изменении порядка списка. Ниже приведен CSS для перехода 'slide'
:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Свойства¶
Единственное различие между <TransitionGroup>
и <Transition>
заключается в том, что <TransitionGroup>
имеет дополнительное свойство 'moveClass'
, которое перезаписывает CSS-класс, применяемый при переходе.
События¶
<TransitionGroup>
также поддерживает те же события, что и <Transition>
.
Дополнительную информацию о Solid Transition Group можно найти в GitHub Repo.
Более подробную информацию о методике FLIP можно найти на сайте Aerotwist.