广告位联系
返回顶部
分享到

纯CSS实现了下划线的交互动画效果

css 来源:互联网 作者:佚名 发布时间:2023-03-12 09:25:34 人浏览
摘要

最近看到了一个特别炫酷的网站上的一个小细节,下划线的动画。看下他的实现效果。 但是,假如我们左边并没有足够的空间存放一条不可见的下划线呢? 像这样。 思路与实现 我要把

最近看到了一个特别炫酷的网站上的一个小细节,下划线的动画。看下他的实现效果。

但是,假如我们左边并没有足够的空间存放一条不可见的下划线呢? 像这样。

思路与实现

我要把这个下划线也做成文章刚开始的动画。就不是太好借鉴上面的思路。那我的新思路就是给鼠标移入(hover)操作整两个动画,但一个元素又不能添加两个animation,如果要更换类选择器,又要动用到JS代码,太麻烦了。

于是我就想到了CSS中的::before和::after选择器呀。让before的线初始宽度为0,鼠标移入就变成100%;让after的线初始宽度为100%,鼠标移入就变成0,这样不就得了。

前提你要记住。

1.使用width:100%的前提是让其本身或父元素有实际的宽度,我用了width:fit-content。
2.使用position: absolute的前提是让其父元素有非static的position。

before的实现

1

2

3

4

.underline::before{content: "";display: block;position: absolute;height: 1px;background: #000;width: 0;//初始宽度为0left: 0;bottom: 0;transition: width 1s;

}

.underline:hover::before {width: 100%;//鼠标移入就变成100%

}

单独使用上面这段代码可以实现的效果是

after的实现

1

2

3

4

.underline::after{content: "";display: block;height: 1px;background: #000;width: 100%;position: absolute;right: 0;bottom: 0;transition: width 1s;

}

.underline:hover::after{width: 0;

}

单独使用上面这段代码可以实现的效果是

before和after同时使用

把上面两段代码放一起,就是我们想要的效果了吧。是不是有人蠢蠢欲动啦。但是!!!

动手快的小伙伴会发现,诶?我两段代码放一起,怎么效果都没了???

你猜猜,为什么?

好,当然是因为当你把这两个动作同时实现的时候,效果抵消了呀。before往右走的同时after也在往右走,中间根本没有间隙,哪怕他有动画效果,你也是看不见的呀。

所以!!!加个延迟效果咯。

transition-delay:表明动画效果属性生效之前需要等待的时间。

最终效果的实现

想想,该让它怎么加这个延迟,才能实现文章刚开始的效果呢?

1.before的动画需要在鼠标刚移入时有延迟,但是鼠标移出时立即执行;
2.after的动画需要在鼠标刚移入时立即执行,鼠标移出时有对应的延迟时间。

只有这样,才能有肉眼可见的闪烁效果。在上面的代码中分别加上如下字段就可以啦~~~

1

2

3

4

5

6

7

8

.underline::before{transition-delay: 0s;

}

.underline:hover::before {transition-delay: 1s;

}

.underline::after{transition-delay: 1s;

}

.underline:hover::after{transition-delay: 0s;

}

看!这样就做完咯!


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 如何利用css var函数让你的组件样式输出规范样式
    我们平时在使用Elementui Antdesing这些UI库时,难免会碰到使用deep强行侵入式去修改组件内部样式的情况;比如下列代码,我们需要把ant的分页
  • 纯CSS实现了下划线的交互动画效果

    纯CSS实现了下划线的交互动画效果
    最近看到了一个特别炫酷的网站上的一个小细节,下划线的动画。看下他的实现效果。 但是,假如我们左边并没有足够的空间存放一条不可
  • css动画实现节流的代码
    1、节流原理 如果持续触发事件,每隔一段时间只执行一次函数。意思就是针对调用频率高的函数,通过设置延时,使其在执行后间隔一段时
  • 五个惊艳一时的CSS属性的介绍(不常用但很有用

    五个惊艳一时的CSS属性的介绍(不常用但很有用
    随着前端的不断发展,更多新的CSS属性不断加入提案,本文列举 5 个不常用但很有用且你见过也可能没见过的CSS属性,带大家领略CSS之美。
  • 基于CSS实现元素融合效果

    基于CSS实现元素融合效果
    实现效果 完整源码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
  • 纯CSS实现loading加载中效果(多种展现形式)

    纯CSS实现loading加载中效果(多种展现形式)
    前言 现如今网页越来越趋近于动画,相信大家平时浏览网页或多或少都能看到一些动画效果,今天我们来做一个有意思的动画效果,纯css实
  • html+css设计两个摆动的大灯笼

    html+css设计两个摆动的大灯笼
    新年马上就要到了,教大家用html+css设计两个大灯笼,喜气洋洋。 html代码: html代码部分非常简单,将一个灯笼分成几部分进行设计,灯笼
  • CSS-@规则(At-rules)常用语法使用总结
    At-rules规则是目前CSS中一种常见的语法规则,它使用一个@符号加一个关键词定义,后面跟上语法区块,如果没有则以分号结束即可。 这种规
  • css实现简易报警灯的代码

    css实现简易报警灯的代码
    实现效果 实现思路 实现的核心是一个灯罩和一个灯芯。灯罩主要是使用了border-radius圆角边框,灯芯主要是radial-gradient径向渐变。再使用动
  • CSS3使用双旋转实现福到了的迎春喜庆特效代码

    CSS3使用双旋转实现福到了的迎春喜庆特效代码
    春节快到了,因为疫情已经好久没有回老家了,今年终于可以回家过年了,我已经抑制不住自己激动的心情了。因此,我利用css3的旋转做了
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计