Для создания анимации смены текста во Vue.js можно воспользоваться несколькими подходами. Ниже приведены два примера:
1. Используя CSS анимацию:
Создадим компонент <transition>
внутри которого будет компонент <span>
с директивой v-if
для изменения текста. Для анимации создадим соответствующие классы в файле CSS:
<template> <div> <transition name="slide-fade"> <span v-if="isVisible">{{ text }}</span> </transition> </div> </template> <script> export default { data() { return { isVisible: true, text: 'Initial Text' }; }, methods: { changeText() { this.isVisible = !this.isVisible; this.text = this.isVisible ? 'New Text' : 'Initial Text'; } } }; </script> <style> .slide-fade-enter-active, .slide-fade-leave-active { transition: opacity 0.5s, transform 0.5s; } .slide-fade-enter, .slide-fade-leave-to { opacity: 0; transform: translateY(20px); } </style>
2. Используя библиотеку Vue.js для анимаций (например, vue2-animate
):
Установим библиотеку:
npm install vue2-animate --save
Используем компоненты из библиотеки для создания анимации смены текста:
<template> <div> <v-animate :value="text" animation="flipInX" :dur="0.5" ></v-animate> <button @click="changeText">Change Text</button> </div> </template> <script> import 'vue2-animate/dist/vue2-animate.min.css'; import VAnimate from 'vue2-animate/dist/vue2-animate'; export default { components: { VAnimate }, data() { return { text: 'Initial Text' }; }, methods: { changeText() { this.text = this.text === 'Initial Text' ? 'New Text' : 'Initial Text'; } } }; </script>
Оба этих примера демонстрируют, как легко реализовать анимацию смены текста во Vue.js, либо с помощью CSS анимации, либо используя специальную библиотеку для анимаций.