之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意:

这里就介绍下是如何实现的。

有两种实现方法,各有优劣。

一、使用径向渐变纯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 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'。

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

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

三、每当要结束的时候

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

text-decoration-style: wavy;

效果如下截图:

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

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

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

html怎么在字体中加波浪线,强大的CSS:文字下波浪线动画效果相关推荐

  1. web前端入门到实战:CSS文字下波浪线动画效果

    之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...

  2. android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...

    Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...

  3. html字体下划线下移,CSS下划线与文字间距距离设置(CSS文字下划线距离设置)

    CSS设置下划线与文字间距距离(CSS文字下划线距离设置) css下划线与文字上下距离设置,文字字体下划线样式技巧篇,如何改变文字与下划线距离间距?这里CSS5为大家介绍通过下边框border-bot ...

  4. css 文字背景波浪,背景水波浪,动态波浪效果

    css 文字背景波浪,背景水波浪,动态波浪效果 <!DOCTYPE html> <html lang="en"> <head><meta ...

  5. CSS:文字下波浪线动画效果

    之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...

  6. Cesium加载entities实体,包括文字标注,图标(动态缩放效果),线(尾迹线效果),面(动态闪烁效果),背景图,围栏(立体分层效果),渐变色圆柱,扇形图等

    加载图标和文字标注 addPoints(data) {if (data && data.length > 0) {let datasource = map_common_addD ...

  7. 【前端实例代码】使用 HTML CSS实现指纹扫描仪特效动画效果 |前端开发 网页制作 基础入门教程 网页开发中常见的样式与特效,收藏起来肯定用的上~

    b站视频演示效果: [web前端特效源码]使用 HTML CSS 和 JavaScript 实现指纹扫描仪特效动画效果 |前端开发 网页制作 基础入门教程 效果图: 完整代码: <!DOCTYP ...

  8. html怎么在字体中加波浪线,CSS3实现文字波浪线效果

    前言 css的设计之巧妙,实现之精妙,细细寻味,其妙非凡,妙不可言.这波浪线,取巧的运用了linear-gradient属性,合角度.颜色.位置于一体,配合background-size,backgr ...

  9. 表单html中加减数字按钮,纯CSS实现数字加减按钮的最佳方案

    前言: 对于数字加减按钮的实现,以前用过不少方案,诸如: 1.使用背景图片--这种效果比较好,缺点是样式控制有点复杂了,还需要使用图片: 2.直接使用"+""-" ...

最新文章

  1. ASP.NET MVC 重点教程一周年版 第九回 HtmlHelper 【转】
  2. 如果想成为一名顶尖的前端,这份书单你一定要收藏!
  3. 验证Linux主机是否支持RDMA
  4. 财讯传媒集团首席战略官段永朝:AI等技术将带来认知重启
  5. c语言是结构化 模块化,c语言是完全模块化和结构化的语言,怎么理解,什么是模块化和结构化...
  6. ArcMap中的名称冲突问题
  7. 主梁弹性模量计算_如何用梁格法计算曲线梁桥?
  8. 在.net core3.0中使用SignalR实现实时通信
  9. maven mirror repository
  10. java讲师北京_Java工程师提升空间大,前途好,该如何跨入它的大门呢?
  11. D盘或者E盘根目录出现msdia80.dll文件的解决方法
  12. Excel VBA小程序 -使用VBA实现VLOOKUP函数查询?
  13. 【转】【干案例】江小白的微博营销 看完直接给跪了!
  14. PySpark+Prophet
  15. 【图神经网络】Pytorch图神经网络库——PyG基础操作
  16. icon、png网页开发中所需要的小图标
  17. 云原生kubernetes六:namespace和Resourcequota
  18. Android开发之为textView添加下划线,中划线等
  19. Elasticsearch牛逼了! 这份携程、滴滴、今日头条、饿了么、360、小米、Vivo 应用实践合集都在这儿了...
  20. (四)Vue之数据绑定

热门文章

  1. 史前文化:中华文化之根
  2. 【大数据】城市公交网络分析与可视化(一):基于Python爬取公交车行驶路径等基本信息
  3. 端午节祝福的html,端午节祝福诗句
  4. 螺旋矩阵、螺旋队列算法
  5. 社群运营之微信群群规怎么写?
  6. excel中同一单元格内容分隔到不同的单元格
  7. kube-proxy核心组件介绍
  8. C++Lambda表达式
  9. LaTeX技巧009:中国象棋的LaTeX排版
  10. 【程序源代码】脱单盲盒交友盲盒 小程序源码