svg css文字霓虹灯
事情是酱紫的,因为两会马上来了,公司产品要搞免费试用活动。首页要求醒目抓眼,UI小姐姐废了九牛九虎之力让产品同意了一版霓虹灯效果图,要在首页中的部分文字大量使用霓虹效果。UI小姐姐给了gif图,但是测试中有拉伸和各种分别率问题,效果并不好,于是就有了这篇文章,用我们的大CSS来完成这个任务。
首先,要知道svg中有个重要的属性–stroke,翻译过来意为“描边”,这就是能完成霓虹效果的最重要角色。stroke有以下几种属性设置:
stroke-width //描边粗细
stroke-linecap //描边端点的表现方式 可用值有 butt round square inherit
stroke-linejoin //描边转角的表现方式 可用值有 miter round bevel inherit
stroke-miterlimit //描边相交(锐角)的表现方式
stroke-dasharray //虚线描边 可用值 none dasharray inherit
stroke-dashoffset //虚线的起始偏移 可用值 percentage length inherit
stroke-opacity //透明度
内联SVG的强大之处在于,其本身也是个HTML元素,能被CSS属性控制,处理传统的高宽定位、边框背景色等,SVG自身的一些特殊属性也能被CSS支持,甚至在CSS3 animation动画中,因为有这些特性,接下来我们就可以实现一个简单的霓虹效果
<svg width="100%" height="100">
<text text-anchor="middle" x="50%" y="50%" class="welcome">
欢迎试用
</text>
</svg>
.welcome{
font-size: 64px;
font-weight: bold;
text-transform: uppercase;
fill: none;
stroke: #3498db;
stroke-width: 2px;
stroke-dasharray: 90 310;
animation: stroke 6s infinite linear;
}
@keyframes stroke {
100% {
stroke-dashoffset: -400;
}
}
然后根据可以根据需求调整颜色和动画时间:
<svg width="100%" height="100">
<text text-anchor="middle" x="50%" y="50%" class="welcome welcome-1">
欢迎试用
</text>
<text text-anchor="middle" x="50%" y="50%" class="welcome welcome-2">
欢迎试用
</text>
<text text-anchor="middle" x="50%" y="50%" class="welcome welcome-3">
欢迎试用
</text>
<text text-anchor="middle" x="50%" y="50%" class="welcome welcome-4">
欢迎试用
</text>
</svg>
.welcome-1{
stroke: #3498db;
text-shadow: 0 0 5px #3498db;
animation-delay: -1.5s;
}
.welcome-2{
stroke: #f39c12;
text-shadow: 0 0 5px #f39c12;
animation-delay: -3s;
}
.welcome-3{
stroke: #e74c3c;
text-shadow: 0 0 5px #e74c3c;
animation-delay: -4.5s;
}
.welcome-4{
stroke: #9b59b6;
text-shadow: 0 0 5px #9b59b6;
animation-delay: -6s;
}
效果如下图