vue3中怎么实现打字机效果,详细代码
时间: 2024-09-25 07:18:28 浏览: 58
vue3 实现 chatgpt 的打字机效果
在Vue3中实现打字机效果通常通过JavaScript的定时器和数组循环结合实现,这里是一个简单的例子。假设我们有一个包含文本的数组`words`,可以按顺序显示每个单词:
```html
<div id="typewriter">
<span v-for="(word, index) in words" :key="index">
{{ word }}
<transition name="fade" enter-active-class="animated fadeInUp" leave-active-class="animated fadeOutDown">
<span v-if="index + 1 < words.length && !showNextWord">...</span>
</transition>
</span>
</div>
<style>
.fade-enter {
opacity: 0;
}
.fade-enter-active {
transition: opacity 0.5s ease-in-out;
}
.fade-leave-active {
transition: opacity 0.5s ease-in-out;
}
</style>
<script setup>
import { ref } from 'vue';
const words = ['这是一个', 'Vue3打字机', '演示'];
let currentWordIndex = ref(0);
let showNextWord = ref(false);
function type() {
if (currentWordIndex.value < words.length - 1) {
showNextWord.value = true;
setTimeout(() => {
currentWordIndex.value++;
type();
}, 500); // 每隔500毫秒展示下一个字符
}
}
type();
</script>
```
这个例子中,我们使用了Vue的`ref`来管理当前显示的单词索引和是否显示省略号。`type`函数会递归地检查是否有下一个单词需要显示,并使用setTimeout模拟按键动作。当达到数组长度时,停止打字。
注意:`<transition>`标签用于过渡效果,使得新显示的单词淡入,旧单词淡出。
阅读全文