# 抖动效果

<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
You-need-to-know-css!
You-need-to-know-css!

See CSShake (opens new window)

上次更新: 2023-10-28