Vue transitions
используются для анимации, и тригеррятся в следующих случаях:- Условный рендеринг через
v-if
- Условное отображение с помощью
v-show
- Переключение динамических компонентов с помощью специального элемента
<component>
- Изменение специального
key
атрибутаПоследний вариант позволяет управлять transitions программно:
<script setup lang="ts">
import { ref } from 'vue';
const show = ref(false);
const animationTrigger = ref(0);
</script>
<template>
<Transition name="slide-fade">
<p v-if="show" :key="animationTrigger">Hi</p>
</Transition>
<button @click="show = !show">Toggle</button>
<button @click="animationTrigger += 1">Re-trigger animation</button>
...
#tip #animation
This media is not supported in your browser
VIEW IN TELEGRAM
Несколько лет назад нужна была анимация для синхронизации данных с сервером для немецкой системы высшего образования, сделалась вот такая кнопка / прогресс-бар.
Есть варианты на Vue 2, Vanilla JS и Web components. Может кто-то захочет проапгрейдить до Vue 3.
#pet #animation
Есть варианты на Vue 2, Vanilla JS и Web components. Может кто-то захочет проапгрейдить до Vue 3.
#pet #animation
Все браузеры кроме
#animation
Firefox
поддерживают View Transitions API - это примерный аналог анимаций Transition
во Vue.js
#animation
MDN Web Docs
View Transition API - Web APIs | MDN
The View Transition API provides a mechanism for easily creating animated transitions between different website views. This includes animating between DOM states in a single-page app (SPA), and animating the navigation between documents in a multi-page app…
Анимацию в вебе обычно делают с помощью
С появлением математических
Здесь подробнее
#css #animation
CSS
(keyframes
) или JavaScripts
.С появлением математических
CSS
функций таких как round()
, mod()
, sin()
появился третий способ, сочетающий в себе плюсы обоих подходовЗдесь подробнее
#css #animation
LogRocket Blog
Optimizing CSS time-based animations with new CSS functions - LogRocket Blog
Learn how new CSS math functions like mod() and round() simplify creating dynamic, time-based animations compared to keyframes.
В
Демо
Документация
#css #animation
CSS
есть scroll-driven animations
, которые позволяют делать сложные красивые анимации [почти] без JS
Демо
Документация
#css #animation
scroll-driven-animations.style
Scroll-driven Animations
A bunch of demos and tools to show off Scroll-driven Animations
Вышел
Из примечательного - по инициативе Эвана на
Анимацию которого можно кастомизировать
Может быть быстрее вьюшного
#router #animation #css
vue-router 4.5.0
Из примечательного - по инициативе Эвана на
router-link
появился prop view-transition
, который задействует нативный View Transitions API для перехода между роутами.<template>
<RouterLink to="/some-page" view-transition>
Go to some page
</RouterLink>
</template>
Анимацию которого можно кастомизировать
CSS
стилямиМожет быть быстрее вьюшного
<Transition>
и уж точно удобней в записи (по сравнению с конструкцией с router-view
). Но не такой функциональный, для простых переходов.#router #animation #css
MDN Web Docs
View Transition API - Web APIs | MDN
The View Transition API provides a mechanism for easily creating animated transitions between different website views. This includes animating between DOM states in a single-page app (SPA), and animating the navigation between documents in a multi-page app…