我是靠谱客的博主 清脆大山,这篇文章主要介绍利用css制作有趣的文字摆动动画特效,现在分享给大家,希望可以做个参考。

在之前的文章《超实用!利用CSS3将两个图片叠加在一起显示》中,我们分享了两种利用CSS3将两个图片叠加融合在一起显示的特效。这次我们给大家介绍一下利用CSS如何制作文字摆动动画特效,感兴趣的可以学习了解一下~

文本文字是网页中最常见的一种组成部分,给文字添加动画效果可以让网页更加吸引人,今天就来给大家分享一款css标题文字摆动动画特效,快来看看。

我们先来看看效果图:

1.gif

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

首先创建HTML部分,定义一个包含文本的h1大标题

复制代码
1
<h1>Hello World !</h1>
登录后复制

1.png

然后开始定义css样式来进行修饰:

背景颜色

复制代码
1
2
3
body { background: black; }
登录后复制

h1标题文本样式,利用text-stroke属性添加白色描边

复制代码
1
2
3
4
5
6
7
8
9
10
h1 { text-align: center; margin: 200px auto; font-size: 4.5rem; font-family: arial; font-weight: 900; color: transparent; overflow: hidden; -webkit-text-stroke: 4px white; }
登录后复制

2.png

h1标题文本样式,利用background系列属性和linear-gradient()添加文本背景

复制代码
1
2
3
4
background: linear-gradient(45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(-45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(90deg, crimson 30%, transparent 30%, transparent 70%, crimson 70%)red; background-size: 20px 20px, 20px 20px, 1px 1px; background-position: 0 0, 0 0, 0 0; -webkit-background-clip: text;
登录后复制

3.png

h1标题文本样式,利用filter属性添加边框阴影

复制代码
1
filter: drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 2px crimson);
登录后复制

4.png

接着是添加动画效果,让文字摆动起来,且文字背景也动起来(实现移位效果):

给h1标签绑定animation动画,设置两个动画bg-shifth和swing:bg-shifth动画控制文字背景,swing动画控制文字摆动

复制代码
1
animation: bg-shift 1s ease-in-out infinite alternate-reverse, swing 2s ease-in-out infinite;
登录后复制

使用两个@keyframes规则,给两个动画设置每一帧的动作即可。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@keyframes bg-shift { from { background-position: 0 50px; } } @keyframes swing { 0% { transform-origin: top; transform: perspective(550px)rotatex(55deg); } 50% { transform: perspective(550px)rotatex(-55deg); } 100% { transform-origin: top; transform: perspective(550px)rotatex(55deg); } }
登录后复制

5.gif

最后,最终效果在摆动时,有高光效果,我们来实现一下:

复制代码
1
2
3
4
5
6
7
h1::before { content: "Hello World !"; position: absolute; background: linear-gradient(transparent 30%, white, transparent 70%); -webkit-background-clip: text; -webkit-text-stroke: 2px red; }
登录后复制

6.gif

给它添加一个动画效果bg-shift2,让它随着文字摆动变化位置:

复制代码
1
animation: bg-shift2 2s ease-in-out infinite alternate-reverse;
登录后复制

使用@keyframes规则,给动画设置每一帧的动作即可。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@keyframes bg-shift2 { 0% { background-position: 0 50px; } 50% { background-position: 0 -50px; } 100% { background-position: 0 50px; } }
登录后复制

7.gif

下面给出完整代码:

复制代码
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> body { background: black; /* overflow: hidden; */ } h1 { text-align: center; margin: 200px auto; font-size: 4.5rem; font-family: arial; font-weight: 900; color: transparent; overflow: hidden; -webkit-text-stroke: 4px white; background: linear-gradient(45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(-45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(90deg, crimson 30%, transparent 30%, transparent 70%, crimson 70%)red; background-size: 20px 20px, 20px 20px, 1px 1px; background-position: 0 0, 0 0, 0 0; -webkit-background-clip: text; filter: drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 2px crimson); animation: bg-shift 1s ease-in-out infinite alternate-reverse, swing 2s ease-in-out infinite; } @keyframes bg-shift { from { background-position: 0 50px; } } @keyframes swing { 0% { transform-origin: top; transform: perspective(550px)rotatex(55deg); } 50% { transform: perspective(550px)rotatex(-55deg); } 100% { transform-origin: top; transform: perspective(550px)rotatex(55deg); } } h1::before { content: "Hello World !"; position: absolute; background: linear-gradient(transparent 30%, white, transparent 70%); -webkit-background-clip: text; -webkit-text-stroke: 2px red; animation: bg-shift2 2s ease-in-out infinite alternate-reverse; } @keyframes bg-shift2 { 0% { background-position: 0 50px; } 50% { background-position: 0 -50px; } 100% { background-position: 0 50px; } } </style> </head> <body> <h1>Hello World !</h1> </body> </html>
登录后复制

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

以上就是利用css制作有趣的文字摆动动画特效的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是清脆大山最近收集整理的关于利用css制作有趣的文字摆动动画特效的全部内容,更多相关利用css制作有趣内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部