# 抖动效果
<style>
.main {
width: 100%;
height: 229px;
display: flex;
}
.main > span {
background: #b4a078;
color: white;
margin: auto;
padding: .3em 1em .5em;
border-radius: 3px;
box-shadow: 0 0 .5em #b4a078;
animation: shake-baidu 2s ease 0s infinite;
animation-play-state: paused;
}
.main:hover > span,
.main > span:hover {
animation-play-state: running;
}
@keyframes shake-baidu {
from { transform: rotate(0deg); }
4% { transform: rotate(5deg); }
12.5% { transform: rotate(-5deg); }
21% { transform: rotate(5deg); }
29% { transform: rotate(-5deg); }
37.5% { transform: rotate(5deg); }
46% { transform: rotate(-5deg); }
50%,to { transform: rotate(0deg); }
}
</style>
<template>
<main class="main">
<span>You-need-to-know-css!</span>
</main>
</template>
<style>
.main {
width: 100%;
height: 229px;
display: flex;
}
.main > span {
background: #b4a078;
color: white;
margin: auto;
padding: .3em 1em .5em;
border-radius: 3px;
box-shadow: 0 0 .5em #b4a078;
animation: shake .1s ease-in-out infinite;
animation-play-state: paused;
}
.main:hover > span,
.main > span:hover {
animation-play-state: running;
}
@keyframes shake {
2% { transform: translate(0.5px, 2.5px) rotate(1.5deg); }
4% { transform: translate(0.5px, -1.5px) rotate(0.5deg); }
6% { transform: translate(-0.5px, -1.5px) rotate(-0.5deg); }
8% { transform: translate(2.5px, -0.5px) rotate(0.5deg); }
10% { transform: translate(2.5px, 1.5px) rotate(0.5deg); }
12% { transform: translate(2.5px, -0.5px) rotate(0.5deg); }
14% { transform: translate(-1.5px, -1.5px) rotate(-0.5deg); }
16% { transform: translate(-0.5px, 0.5px) rotate(0.5deg); }
18% { transform: translate(-0.5px, 2.5px) rotate(1.5deg); }
20% { transform: translate(2.5px, -1.5px) rotate(1.5deg); }
22% { transform: translate(2.5px, -1.5px) rotate(0.5deg); }
24% { transform: translate(0.5px, -1.5px) rotate(-0.5deg); }
26% { transform: translate(-1.5px, 1.5px) rotate(0.5deg); }
28% { transform: translate(-1.5px, -0.5px) rotate(1.5deg); }
30% { transform: translate(-0.5px, -0.5px) rotate(1.5deg); }
32% { transform: translate(-0.5px, -0.5px) rotate(-0.5deg); }
34% { transform: translate(0.5px, -0.5px) rotate(0.5deg); }
36% { transform: translate(-1.5px, 1.5px) rotate(1.5deg); }
38% { transform: translate(2.5px, 1.5px) rotate(1.5deg); }
40% { transform: translate(1.5px, -1.5px) rotate(0.5deg); }
42% { transform: translate(1.5px, -1.5px) rotate(1.5deg); }
44% { transform: translate(1.5px, 2.5px) rotate(1.5deg); }
46% { transform: translate(1.5px, -1.5px) rotate(0.5deg); }
48% { transform: translate(-0.5px, -1.5px) rotate(0.5deg); }
50% { transform: translate(-1.5px, -1.5px) rotate(1.5deg); }
52% { transform: translate(1.5px, -0.5px) rotate(1.5deg); }
54% { transform: translate(-0.5px, -0.5px) rotate(0.5deg); }
56% { transform: translate(2.5px, 0.5px) rotate(0.5deg); }
58% { transform: translate(-0.5px, 0.5px) rotate(1.5deg); }
60% { transform: translate(0.5px, 1.5px) rotate(-0.5deg); }
62% { transform: translate(-0.5px, -1.5px) rotate(0.5deg); }
64% { transform: translate(-0.5px, -1.5px) rotate(0.5deg); }
66% { transform: translate(1.5px, -1.5px) rotate(-0.5deg); }
68% { transform: translate(0.5px, 1.5px) rotate(-0.5deg); }
70% { transform: translate(0.5px, 2.5px) rotate(-0.5deg); }
72% { transform: translate(2.5px, -1.5px) rotate(1.5deg); }
74% { transform: translate(-1.5px, -0.5px) rotate(0.5deg); }
76% { transform: translate(-1.5px, -1.5px) rotate(1.5deg); }
78% { transform: translate(0.5px, 0.5px) rotate(1.5deg); }
80% { transform: translate(0.5px, -0.5px) rotate(1.5deg); }
82% { transform: translate(-0.5px, -1.5px) rotate(1.5deg); }
84% { transform: translate(2.5px, -0.5px) rotate(1.5deg); }
86% { transform: translate(0.5px, 0.5px) rotate(-0.5deg); }
88% { transform: translate(1.5px, 2.5px) rotate(-0.5deg); }
90% { transform: translate(-1.5px, 2.5px) rotate(1.5deg); }
92% { transform: translate(-0.5px, -1.5px) rotate(-0.5deg); }
94% { transform: translate(1.5px, -0.5px) rotate(0.5deg); }
96% { transform: translate(-1.5px, 2.5px) rotate(1.5deg); }
98% { transform: translate(2.5px, 2.5px) rotate(0.5deg); }
0%, 100% { transform: translate(0, 0) rotate(0); }
}
</style>
<template>
<main class="main">
<span>You-need-to-know-css!</span>
</main>
</template>
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
← Loading 动画 无缝平滑效果 →