前言
关于文字特效我之前有过接触,也实现过相关的特效。这一次给大家带来另一个炫酷的文字特效,实现过程会和之前的不一样,最终呈现效果也会不一样。
效果预览
接下来就开始该特效的实现过程了。
HTML布局
先来进行基本的布局,设计一个JUEJIN标题,每个字母用span元素分隔开来,相关代码如下。
<h2>
<span>J</span>
<span>U</span>
<span>E</span>
<span>J</span>
<span>I</span>
<span>N</span>
</h2>
这里就比较简单直白了,不用过多介绍了。
CSS样式
基本布局有了,接下来就可以开始进行CSS的样式设计了。
首先对h2标题加入基本的样式,相关代码如下。
h2{
font-size: 6em;
color: #333;
font-weight: 500;
}
针对标题,我们对它做一些基本处理,比如加上颜色、字体大小等,这些根据自己的想法来定义即可。
然后对每个span元素加入不同的样式,相关代码如下。
h2 span:nth-child(1){
animation-delay: 0s;
}
h2 span:nth-child(2){
animation-delay: 0.2s;
}
h2 span:nth-child(3){
animation-delay: 0.4s;
}
h2 span:nth-child(4){
animation-delay: 0.6s;
}
h2 span:nth-child(5){
animation-delay: 0.8s;
}
这里我们是用来设置span元素的动画延迟时间。h2 span:nth-child(1)用来选择h2元素内部的第一个span元素。对于第一个span元素设置动画延迟时间为0秒,即立即开始动画。h2 span:nth-child(2)用来选择h2元素内部的第二个span元素,对于它我们设置其动画延迟时间为0.2秒,即延迟0.2秒后开始动画。关于后面的几个span元素,同理设置即可,第三个span元素的动画延迟时间为0.4秒,即延迟0.4秒后开始动画。紧接着就是第四个span元素动画延迟时间为0.6秒,即延迟0.6秒后开始动画。最后就是第五个span元素了,动画延迟时间为0.8秒,即延迟0.8秒后开始动画。
通过设置不同的animation-delay值,可以实现每个span元素在不同的时间点开始动画,从而创建出一种逐个淡入的效果。
最后就是给span元素加上动画效果了,相关代码如下。
h2 span{
animation: animate 1s linear infinite;
}
@keyframes animate {
0%,80%{
color: #333;
box-shadow: none;
}
100%{
color: #fff;
text-shadow: 0 0 10px #fff,
0 0 20px #fff,
0 0 40px #fff,
0 0 80px #fff,
0 0 160px #fff,
}
}
这段代码是用来给h2标签中的span元素添加动画效果的。第一处代码指定了h2标签中的span元素的样式。其中animation属性指定了动画名称为animate,动画持续时间为1秒,动画速度为线性,动画无限循环播放。
第二处代码就是设置动画帧。
-
第一个关键帧为0% 和80%,表示动画的开始和结束状态。在这两个状态下,文字颜色为
#333,阴影效果为无。 -
第二个关键帧为100%,表示动画的中间状态。在这个状态下,文字颜色为
#fff,同时设置了多个文本阴影效果,形成了一种逐渐放大的效果。
总之,这段代码的作用是让h2标签中的span元素在页面加载时产生一个闪烁的动画效果,文字颜色从深灰色逐渐变为白色,并且带有逐渐放大的文本阴影效果。
总结
以上就是整个效果的实现过程了。代码方面没有很大问题,比较通俗易懂;效果方面不会因为代码简单而变得简单。总之,该特效值得大家去看看,或者也可以在该效果的基础上进行创新扩展,如果有遇到什么问题欢迎各位在评论区里讨论~