我是靠谱客的博主 甜美黑米,这篇文章主要介绍手把手教你使用CSS3实现按钮悬停闪烁动态特效,现在分享给大家,希望可以做个参考。

在之前的文章《纯CSS3怎么创建瀑布流布局?columns方法浅析》中,我们介绍了使用CSS3 column系列属性创建瀑布流布局的方法,感兴趣的朋友可以去了解一下~

而今天我们来看看使用CSS3怎么给按钮添加动态效果,实现一个按钮悬停闪亮阴影动画效果,让网页互动性更强,更吸引人!

我们先来看看效果图

2.gif

下面我们来研究一下是怎么实现这个效果的:

首先是HTML部分,定义一个div容器包裹button按钮,在按钮中使用<span>标签对来包含按钮文本

复制代码
1
2
3
<div id="shiny-shadow"> <button><span>鼠标悬停</span></button> </div>
登录后复制

1.png

然后开始定义css样式来进行修饰:调整布局样式、色彩范围

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#shiny-shadow { display: flex; align-items: center; justify-content: center; height: 100vh; background: #1c2541; } button { border: 2px solid white; background: transparent; text-transform: uppercase; color: white; padding: 15px 50px; outline: none; } span { z-index: 20; }
登录后复制

2.png

接着制作一闪而过的覆盖层:

  • 使用:after选择器制作一个带透明度的长方形,让它相对于button按钮进行绝对定位

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
button { position: relative; } button:after { content: ''; display: block; position: absolute; background: white; width: 50px; height: 125px; opacity: 20%; }
登录后复制

3.png

  • 在最终效果中,一闪而过的是一个倾斜的长方形;因此我们添加一个transform: rotate(-45deg);样式

复制代码
1
2
3
button:after { transform: rotate(-45deg); }
登录后复制

4.png

  • 使用top属性和left属性控制长方形的位置

复制代码
1
2
3
4
button:after { top: -2px; left: -1px; }
登录后复制

5.png

最后实现按钮悬停闪烁动画特效

  • 因为是悬停效果,所以要使用到:hover选择器;我们要设置鼠标悬停时长方形的位置

复制代码
1
2
3
button:hover:after { left: 120%; }
登录后复制

6.gif

  • 这样突然变换位置不是我们要的效果,可以使用transition属性添加一个过渡效果,因为该属性是css3的一个新属性,要添加前缀来兼容其他浏览器

复制代码
1
2
3
4
5
button:hover:after { left: 120%; transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1); -webkit-transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1); }
登录后复制

7.gif

  • 大致实现了,再修饰一下。

只想要button按钮范围内显示长方形覆盖层,那么可给button标签添加一个overflow: hidden;样式

复制代码
1
2
3
button { overflow: hidden; }
登录后复制

8.png

9.gif

可以看出覆盖层的位置还有点问题,最终效果中覆盖层一开始是不显示的,我们使用top属性和left属性来调整一下

复制代码
1
2
3
4
button:after { top: -36px; left: -100px; }
登录后复制

10.gif

OK,大功告成!下面附上完整代码:

复制代码
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
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #shiny-shadow { display: flex; align-items: center; justify-content: center; height: 100vh; background: #1c2541; } button { border: 2px solid white; background: transparent; text-transform: uppercase; color: white; padding: 15px 50px; outline: none; position: relative; overflow: hidden; } span { z-index: 20; } button:after { content: ''; display: block; position: absolute; background: white; width: 50px; height: 125px; opacity: 20%; transform: rotate(-45deg); top: -36px; left: -100px; } button:hover:after { left: 120%; transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1); -webkit-transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1); } </style> </head> <body> <div id="shiny-shadow"> <button><span>鼠标悬停</span></button> </div> </body> </html>
登录后复制

靠谱客平台有非常多的视频教学资源,欢迎大家学习《css视频教程》!

以上就是手把手教你使用CSS3实现按钮悬停闪烁动态特效的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是甜美黑米最近收集整理的关于手把手教你使用CSS3实现按钮悬停闪烁动态特效的全部内容,更多相关手把手教你使用CSS3实现按钮悬停闪烁动态特效内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(116)

评论列表共有 0 条评论

立即
投稿
返回
顶部