使用SVG + CSS实现动态霓虹灯文字效果

晚上懒得进来三个网址,看到他俩的LOGO效果略屌,如图:
图片 1

刚开首感到是gif动画之类的,审查成分发现依然是用SVG +
CSS三动画达成的,霎时激起了自小编的(hao)欲(qi)望(xin),决定要1探究竟,查看代码之后,发现原理居然是如此轻松:八个SVG描边动画使用分化的animation-delay就可以!

对于1个形状SVG成分或文本SVG成分,能够行使stroke-dasharray来决定描边的间距样式,并且能够用stroke-dashoffset来调节描边的偏移量,借此能够兑现描边动画效果,更有血有肉的质地能够看看张大神的《纯CSS完结帅气的SVG路线描边动画效果

咱俩先达成二个简便的文字描边动画:

<svg width="100%" height="100">
    <text text-anchor="middle" x="50%" y="50%" class="text">
        segmentfault.com
    </text>
</svg> 

.text{
    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;
  }
}

以身作则地址:http://output.jsbin.com/demic

下一场大家同时采取多少个描边动画,并安装分裂的animation-delay:

<svg width="100%" height="100">
    <text text-anchor="middle" x="50%" y="50%" class="text text-1">
        segmentfault.com
    </text>
    <text text-anchor="middle" x="50%" y="50%" class="text text-2">
        segmentfault.com
    </text>
    <text text-anchor="middle" x="50%" y="50%" class="text text-3">
        segmentfault.com
    </text>
    <text text-anchor="middle" x="50%" y="50%" class="text text-4">
        segmentfault.com
    </text>
</svg> 

瞩目:要运用多少种颜色,就放多少个text

.text{
    font-size: 64px;
    font-weight: bold;
    text-transform: uppercase;
    fill: none;
    stroke-width: 2px;
    stroke-dasharray: 90 310;
    animation: stroke 6s infinite linear;
}
.text-1{
    stroke: #3498db;
    text-shadow: 0 0 5px #3498db;
    animation-delay: -1.5s;
}
.text-2{
    stroke: #f39c12;
    text-shadow: 0 0 5px #f39c12;
    animation-delay: -3s;
}
.text-3{
    stroke: #e74c3c;
    text-shadow: 0 0 5px #e74c3c;
    animation-delay: -4.5s;
}
.text-4{
    stroke: #9b59b6;
    text-shadow: 0 0 5px #9b59b6;
    animation-delay: -6s;
}

@keyframes stroke {
  100% {
    stroke-dashoffset: -400;
  }
}

居功至伟告成,演示地址:http://output.jsbin.com/vuyuv
图片 2

亟需留意的几个点:

1.家家户户要素的animation-delay与animation的总时间长度的装置要和谐
二.stroke-dashoffset与stroke-dasharray的装置要协调

https://segmentfault.com/a/1190000010963326

发表评论

电子邮件地址不会被公开。 必填项已用*标注