文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CSS实现文字下波浪线动画效果

2024-04-02 19:55

关注

这篇文章主要介绍“CSS实现文字下波浪线动画效果”,在日常操作中,相信很多人在CSS实现文字下波浪线动画效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS实现文字下波浪线动画效果”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、使用径向渐变纯CSS实现

就是使用径向渐变绘制我们的波浪线效果,一个波浪线循环段是有一个朝上的半个圆弧和一个朝下的半个圆弧组合而成的。

所以,我们只要使用径向渐变绘制圆弧,再通过background-position控制两个圆弧的位置,让其前后拼接在一起就可以实现波浪线效果。

相关CSS代码如下:

.flow-wave {
    background: radial-gradient(circle at 10px -7px, transparent 8px, currentColor 8px, currentColor 9px, transparent 9px) repeat-x,
        radial-gradient(circle at 10px 27px, transparent 8px, currentColor 8px, currentColor 9px, transparent 9px) repeat-x;
    background-size: 20px 20px;
    background-position: -10px calc(100% + 16px), 0 calc(100% - 4px);
}

实时效果如下:

有了静态的波浪线效果,剩下的就像这个波浪线动起来,用CSS3 animation动画控制background-position位置即可。

.flow-wave {
    animation: waveFlow 1s infinite linear;
}
@keyframes waveFlow {
    from { background-position-x: -10px, 0; }
    to { background-position-x: -30px, -20px; }
}

于是波浪线动画效果就实现了。

这种方法实现的优点是颜色控制非常方便,例如,我们修改文字颜色为原谅绿,弯弯水波的颜色也变成了原谅绿:

CSS实现文字下波浪线动画效果

此方法实现的不足就是:理解成本有点高,如何使用CSS radial-gradient模拟波浪线效果是需要相当的CSS功力积累的,上手不太容易,以后要修改个尺寸什么的也不太好维护。同时,在普通屏幕密度屏幕下的Chrome浏览器上,线条并不平滑,吹毛求疵的设计师不一定会接受。

此时,可以试试下面这种更利于理解的方法。

二、使用SVG波形矢量图作为背景

就是我们直接使用一个使用SVG波形矢量图作为背景,不用自己去手动CSS绘制,代码量差不多,还更容易理解。CSS代码示意:

.svg-wave {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 4'%3E%3Cpath fill='none' stroke='%23333' d='M0 3.5c5 0 5-3 10-3s5 3 10 3 5-3 10-3 5 3 10 3'/%3E%3C/svg%3E") repeat-x 0 100%; 
    background-size: 20px auto;
}

实时效果如下:

有了静态的波浪线效果,剩下的就像这个波浪线动起来,用CSS3 animation动画控制background-position位置即可。

.svg-wave {
    animation: waveMove 1s infinite linear;
}
@keyframes waveMove {
    from { background-position: 0 100%; }
    to   { background-position: -20px 100%; }
}

此方法就是我博客链接使用的方法。

优点是线条边缘平滑,效果细腻,易理解,易上手,易维护。

缺点也很明显,就是波浪线的颜色无法实时跟着文字的颜色发生变化,适用于文字颜色不会多变的场景。

如果我们想要改变波浪线的颜色也很简单,修改background代码中的stroke='%23333'这部分,'%23'就是就是#,因此,stroke='%23333'其实就是stroke='#333'的意思。例如,我们需要改成红色略带橙色,可以stroke='%23F30',也可以写完整stroke='%23FF3300'

这个颜色就是我博客链接波浪线的颜色,如下图:

CSS实现文字下波浪线动画效果

大家可以根据自己实际开发的场景选择合适的方法。

三、每当要结束的时候

text-decoration属性早已支持波浪线下划线:

text-decoration-style: wavy;

效果如下截图:

CSS实现文字下波浪线动画效果

可以看到,线好粗好不协调,而且字符和装饰线发生重叠的时候,装饰线直接消失了,结果波浪线变成了一截一截的,还需要使用text-decoration-skip进行额外控制。因此,实际开发,不建议在实际项目中使用。

而且你无法预知每个波浪线重复片段的宽度,想要无限运动理论上就不太可行。

因此,文字或者图形的波浪线动画效果不能使用text-decoration的波浪线。

到此,关于“CSS实现文字下波浪线动画效果”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯