文字渐变动画,可以实现的有两种:一种是一行文字整体变化颜色;另一种一行文字依次变化颜色。接下来,我就介绍一下这两种文字渐变的实现过程。
布局代码:
<div class="con"><div class="animated-text">Hello World</div>
</div>
<div class="con"><div class="flow">Hello World</div>
</div>
为了呈现的效果好看些,我把两个渐变文字分别放置到两个容器中。实际请仅关注 下面代码:
<div class="">Hello World</div>
当然为了美观,我把关于文字大小和对齐的样式也写在了 con 这个容器里。贴一下CSS代码:
.con{ display: flex;height: 300px; border-radius: 10px;background: #eaeaea;color: #333;font-size: 64px;font-weight: 700;padding: 20px;box-sizing: border-box;align-items: center; /* 垂直居中 */justify-content: center; /* 水平居中 */flex: 1; margin:20px;flex-basis: 45%;margin-bottom: 10px;text-shadow: 0 0 10px rgba(0, 0, 0, .3);
}
两个动画的实现方法
第一种:一行文字整体变化颜色
先贴代码,再解释:
/* 定义文字渐变色动画 */
@keyframes text-color-change {0% {color: #ff3334; /* 动画开始时的颜色 */}20% {color: #ffcf00; /* 动画中间时的颜色 */}40% {color: #66ccff; /* 动画中间时的颜色 */}60% {color: #ff3399; /* 动画中间时的颜色 */}80% {color: #9933ff; /* 动画中间时的颜色 */}100% {color: #19e713; /* 动画结束时的颜色 */}
}/* 应用动画到元素 */
.animated-text {animation: text-color-change 2s infinite alternate; /* 动画名称,持续时间,循环次数,方向 */
}
思路:这段代码定义了一个名为 text-color-change的关键帧动画,它会在五个颜色间进行变化。然后,.animated-text类使用这个动画,并设置了动画的持续时间、循环方式和是否反向播放。这样,当应用到HTML元素上时,该元素的文本颜色将会持续变化。
第二种:一行文字依次变化颜色
先贴代码,再解释:
.flow {height: 120px;background: linear-gradient(to right, red, orange, yellow, green, cyan, blue, purple);-webkit-background-clip: text;-webkit-text-fill-color: transparent;animation: hue 3s linear infinite; padding: 20px;
}
@keyframes hue {0% {filter: hue-rotate(0deg);}100% {filter: hue-rotate(360deg);}
}
思路:这段代码定义了一个名为 hue 的动画,该动画将应用一个色彩旋转效果。通过 @keyframes 定义的 hue-rotate动画会从0deg旋转到360deg,形成一个完整的色环。动画的持续时间是3秒,并且设置为无限次循环(infinite),每次动画都会交替反向播放(alternate)。