效果✨✨✨

应用在某些logo文字或title上感觉效果也挺不错的。
实现思路💡
1️⃣ 将每个字符作为一个单体元素处理并渲染
2️⃣ 给字符添加一个改变color以及text-shadow的animation关键帧
3️⃣ 设置每个字符的animation-delay实现交错效果
代码✏️
<template>
<div class="text_color">
<span v-for="item in textString" :key="item">{{ item }}</span>
</div>
</template>
<script setup lang="ts">
import { ref } from "vue";
const textString = ref("这是一段测试文字");
</script>
<style scoped lang="scss">
.text_color {
height: 100%;
background: #000;
display: flex;
justify-content: center;
align-items: center;
font-size: 50px;
font-weight: bold;
color: #faebd7;
span {
margin: 0 10px;
animation: change 1s ease-in-out infinite alternate;
}
@for $i from 1 through 10 {
span:nth-child(#{$i}) {
animation-delay: $i * 0.1s;
}
}
}
@keyframes change {
to {
color: #ff0266;
text-shadow: 20px 0 70px #ff0266;
}
}
</style>
完结❤️