手把手教你实现一种发光的文字

1,022 阅读3分钟

前言

关于文字特效我之前有过接触,也实现过相关的特效。这一次给大家带来另一个炫酷的文字特效,实现过程会和之前的不一样,最终呈现效果也会不一样。

效果预览

接下来就开始该特效的实现过程了。

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元素在页面加载时产生一个闪烁的动画效果,文字颜色从深灰色逐渐变为白色,并且带有逐渐放大的文本阴影效果。

总结

以上就是整个效果的实现过程了。代码方面没有很大问题,比较通俗易懂;效果方面不会因为代码简单而变得简单。总之,该特效值得大家去看看,或者也可以在该效果的基础上进行创新扩展,如果有遇到什么问题欢迎各位在评论区里讨论~