我有一个image
类,它使用jQuery函数添加到body
中:
$('body').addClass('image').addClass('shake');
当我尝试使用类shake
添加震动效果时,它没有产生震动效果:
$('body').addClass('image').addClass('shake');
如何纠正我的代码以使添加到身体的图像获得抖动效果? jQuery还是其他问题?
$(document).ready(function() {
$('body').addClass('image').addClass('shake');
});
@import url(https://fonts.googleapis.com/css?family=Gentium+Basic);
@import url(https://fonts.googleapis.com/css?family=Dancing+Script);
.image {
background-image: url(https://picsum.photos/200/300?image=0);
}
.shake {
display: inline-block;
-webkit-transform-origin: center center;
-ms-transform-origin: center center;
-webkit-transform-origin: center center;
}
.shake:hover {
-webkit-animation-name: shake-base;
-ms-animation-name: shake-base;
-webkit-animation-name: shake-base;
-webkit-animation-duration: 100ms;
-ms-animation-duration: 100ms;
-webkit-animation-duration: 100ms;
-webkit-animation-iteration-count: infinite;
-ms-animation-iteration-count: infinite;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: ease-in-out;
-ms-animation-timing-function: ease-in-out;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-delay: 0s;
-ms-animation-delay: 0s;
-webkit-animation-delay: 0s;
}
@-webkit-keyframes shake-base {
0% {
-webkit-transform: translate(0px, 0px) rotate(0deg);
}
2% {
-webkit-transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
4% {
-webkit-transform: translate(-2.5px, -2.5px) rotate(-0.5deg);
}
6% {
-webkit-transform: translate(-0.5px, -2.5px) rotate(-0.5deg);
}
8% {
-webkit-transform: translate(-0.5px, -1.5px) rotate(-1.5deg);
}
10% {
-webkit-transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
12% {
-webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg);
}
14% {
-webkit-transform: translate(1.5px, 1.5px) rotate(-0.5deg);
}
16% {
-webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg);
}
18% {
-webkit-transform: translate(-0.5px, -1.5px) rotate(0.5deg);
}
20% {
-webkit-transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
22% {
-webkit-transform: translate(-1.5px, 0.5px) rotate(0.5deg);
}
24% {
-webkit-transform: translate(-2.5px, 1.5px) rotate(-1.5deg);
}
26% {
-webkit-transform: translate(1.5px, -0.5px) rotate(-1.5deg);
}
28% {
-webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg);
}
30% {
-webkit-transform: translate(-0.5px, -0.5px) rotate(-1.5deg);
}
32% {
-webkit-transform: translate(-2.5px, 1.5px) rotate(0.5deg);
}
34% {
-webkit-transform: translate(0.5px, -0.5px) rotate(0.5deg);
}
36% {
-webkit-transform: translate(0.5px, -0.5px) rotate(-0.5deg);
}
38% {
-webkit-transform: translate(1.5px, -0.5px) rotate(-0.5deg);
}
40% {
-webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg);
}
42% {
-webkit-transform: translate(-2.5px, 1.5px) rotate(-1.5deg);
}
44% {
-webkit-transform: translate(0.5px, 0.5px) rotate(-0.5deg);
}
46% {
-webkit-transform: translate(-2.5px, -1.5px) rotate(-0.5deg);
}
48% {
-webkit-transform: translate(1.5px, 1.5px) rotate(0.5deg);
}
50% {
-webkit-transform: translate(1.5px, 1.5px) rotate(-1.5deg);
}
52% {
-webkit-transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
54% {
-webkit-transform: translate(1.5px, -2.5px) rotate(0.5deg);
}
56% {
-webkit-transform: translate(1.5px, -0.5px) rotate(-0.5deg);
}
58% {
-webkit-transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
60% {
-webkit-transform: translate(-0.5px, -1.5px) rotate(-0.5deg);
}
62% {
-webkit-transform: translate(0.5px, 0.5px) rotate(-1.5deg);
}
64% {
-webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg);
}
66% {
-webkit-transform: translate(0.5px, 1.5px) rotate(0.5deg);
}
68% {
-webkit-transform: translate(-0.5px, -2.5px) rotate(-1.5deg);
}
70% {
-webkit-transform: translate(0.5px, -2.5px) rotate(-1.5deg);
}
72% {
-webkit-transform: translate(0.5px, -1.5px) rotate(0.5deg);
}
74% {
-webkit-transform: translate(-2.5px, 1.5px) rotate(-0.5deg);
}
76% {
-webkit-transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
}
78% {
-webkit-transform: translate(-2.5px, -2.5px) rotate(-1.5deg);
}
80% {
-webkit-transform: translate(-0.5px, 0.5px) rotate(0.5deg);
}
82% {
-webkit-transform: translate(-2.5px, -0.5px) rotate(0.5deg);
}
84% {
-webkit-transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
}
86% {
-webkit-transform: translate(-2.5px, 1.5px) rotate(-0.5deg);
}
88% {
-webkit-transform: translate(-1.5px, -2.5px) rotate(-0.5deg);
}
90% {
-webkit-transform: translate(-0.5px, -0.5px) rotate(-1.5deg);
}
92% {
-webkit-transform: translate(1.5px, -1.5px) rotate(-1.5deg);
}
94% {
-webkit-transform: translate(-0.5px, -1.5px) rotate(-1.5deg);
}
96% {
-webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg);
}
98% {
-webkit-transform: translate(1.5px, -2.5px) rotate(-1.5deg);
}
}
@-ms-keyframes shake-base {
0% {
-ms-transform: translate(0px, 0px) rotate(0deg);
}
2% {
-ms-transform: translate(1.5px, 1.5px) rotate(0.5deg);
}
4% {
-ms-transform: translate(0.5px, -2.5px) rotate(-0.5deg);
}
6% {
-ms-transform: translate(-2.5px, 1.5px) rotate(-1.5deg);
}
8% {
-ms-transform: translate(-2.5px, -0.5px) rotate(-1.5deg);
}
10% {
-ms-transform: translate(-1.5px, -0.5px) rotate(-1.5deg);
}
12% {
-ms-transform: translate(-0.5px, -2.5px) rotate(-1.5deg);
}
14% {
-ms-transform: translate(-2.5px, -2.5px) rotate(0.5deg);
}
16% {
-ms-transform: translate(-1.5px, -1.5px) rotate(-0.5deg);
}
18% {
-ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg);
}
20% {
-ms-transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
}
22% {
-ms-transform: translate(1.5px, -1.5px) rotate(-1.5deg);
}
24% {
-ms-transform: translate(-2.5px, -0.5px) rotate(-0.5deg);
}
26% {
-ms-transform: translate(-0.5px, -2.5px) rotate(-0.5deg);
}
28% {
-ms-transform: translate(0.5px, -1.5px) rotate(-0.5deg);
}
30% {
-ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg);
}
32% {
-ms-transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
}
34% {
-ms-transform: translate(-0.5px, -1.5px) rotate(-1.5deg);
}
36% {
-ms-transform: translate(1.5px, -0.5px) rotate(-0.5deg);
}
38% {
-ms-transform: translate(-2.5px, 0.5px) rotate(-0.5deg);
}
40% {
-ms-transform: translate(1.5px, -1.5px) rotate(0.5deg);
}
42% {
-ms-transform: translate(-0.5px, 1.5px) rotate(-0.5deg);
}
44% {
-ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg);
}
46% {
-ms-transform: translate(1.5px, 0.5px) rotate(-1.5deg);
}
48% {
-ms-transform: translate(1.5px, 0.5px) rotate(0.5deg);
}
50% {
-ms-transform: translate(-0.5px, -0.5px) rotate(-0.5deg);
}
52% {
-ms-transform: translate(-2.5px, 1.5px) rotate(0.5deg);
}
54% {
-ms-transform: translate(-0.5px, -2.5px) rotate(0.5deg);
}
56% {
-ms-transform: translate(-0.5px, 1.5px) rotate(0.5deg);
}
58% {
-ms-transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
}
60% {
-ms-transform: translate(-0.5px, -1.5px) rotate(0.5deg);
}
62% {
-ms-transform: translate(1.5px, -1.5px) rotate(0.5deg);
}
64% {
-ms-transform: translate(0.5px, 0.5px) rotate(-1.5deg);
}
66% {
-ms-transform: translate(-0.5px, 1.5px) rotate(-1.5deg);
}
68% {
-ms-transform: translate(-1.5px, -2.5px) rotate(-0.5deg);
}
70% {
-ms-transform: translate(-1.5px, -2.5px) rotate(-1.5deg);
}
72% {
-ms-transform: translate(-2.5px, -0.5px) rotate(-1.5deg);
}
74% {
-ms-transform: translate(0.5px, 1.5px) rotate(0.5deg);
}
76% {
-ms-transform: translate(-2.5px, -2.5px) rotate(-1.5deg);
}
78% {
-ms-transform: translate(-1.5px, -1.5px) rotate(-0.5deg);
}
80% {
-ms-transform: translate(-1.5px, -0.5px) rotate(-1.5deg);
}
82% {
-ms-transform: translate(0.5px, 1.5px) rotate(-1.5deg);
}
84% {
-ms-transform: translate(-2.5px, 0.5px) rotate(-1.5deg);
}
86% {
-ms-transform: translate(1.5px, -1.5px) rotate(0.5deg);
}
88% {
-ms-transform: translate(0.5px, -2.5px) rotate(0.5deg);
}
90% {
-ms-transform: translate(-1.5px, -1.5px) rotate(-1.5deg);
}
92% {
-ms-transform: translate(-1.5px, -1.5px) rotate(-1.5deg);
}
94% {
-ms-transform: translate(-0.5px, 1.5px) rotate(-0.5deg);
}
96% {
-ms-transform: translate(-1.5px, 0.5px) rotate(-0.5deg);
}
98% {
-ms-transform: translate(-0.5px, -1.5px) rotate(-1.5deg);
}
}
@keyframes shake-base {
0% {
transform: translate(0px, 0px) rotate(0deg);
}
2% {
transform: translate(-2.5px, -2.5px) rotate(-1.5deg);
}
4% {
transform: translate(1.5px, 0.5px) rotate(0.5deg);
}
6% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
8% {
transform: translate(-0.5px, 1.5px) rotate(-1.5deg);
}
10% {
transform: translate(0.5px, 0.5px) rotate(0.5deg);
}
12% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
14% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
16% {
transform: translate(-1.5px, -2.5px) rotate(0.5deg);
}
18% {
transform: translate(0.5px, -2.5px) rotate(-0.5deg);
}
20% {
transform: translate(-2.5px, -2.5px) rotate(0.5deg);
}
22% {
transform: translate(-0.5px, -1.5px) rotate(0.5deg);
}
24% {
transform: translate(-1.5px, -2.5px) rotate(-1.5deg);
}
26% {
transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
}
28% {
transform: translate(0.5px, 1.5px) rotate(-1.5deg);
}
30% {
transform: translate(-0.5px, 1.5px) rotate(0.5deg);
}
32% {
transform: translate(-1.5px, 0.5px) rotate(0.5deg);
}
34% {
transform: translate(-2.5px, 1.5px) rotate(0.5deg);
}
36% {
transform: translate(-0.5px, -2.5px) rotate(-0.5deg);
}
38% {
transform: translate(0.5px, 1.5px) rotate(-0.5deg);
}
40% {
transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
42% {
transform: translate(-0.5px, 0.5px) rotate(-0.5deg);
}
44% {
transform: translate(1.5px, 1.5px) rotate(0.5deg);
}
46% {
transform: translate(0.5px, -1.5px) rotate(0.5deg);
}
48% {
transform: translate(-1.5px, 0.5px) rotate(-1.5deg);
}
50% {
transform: translate(-0.5px, -1.5px) rotate(-0.5deg);
}
52% {
transform: translate(-0.5px, 1.5px) rotate(-0.5deg);
}
54% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
56% {
transform: translate(-1.5px, -0.5px) rotate(-0.5deg);
}
58% {
transform: translate(1.5px, 0.5px) rotate(-0.5deg);
}
60% {
transform: translate(1.5px, 0.5px) rotate(-0.5deg);
}
62% {
transform: translate(-1.5px, -1.5px) rotate(0.5deg);
}
64% {
transform: translate(1.5px, 0.5px) rotate(-1.5deg);
}
66% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
68% {
transform: translate(0.5px, -2.5px) rotate(-1.5deg);
}
70% {
transform: translate(0.5px, -2.5px) rotate(-1.5deg);
}
72% {
transform: translate(1.5px, -1.5px) rotate(0.5deg);
}
74% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
76% {
transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
78% {
transform: translate(1.5px, -1.5px) rotate(-1.5deg);
}
80% {
transform: translate(-2.5px, -1.5px) rotate(-1.5deg);
}
82% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
84% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
86% {
transform: translate(1.5px, 0.5px) rotate(0.5deg);
}
88% {
transform: translate(-2.5px, 0.5px) rotate(-1.5deg);
}
90% {
transform: translate(0.5px, 1.5px) rotate(0.5deg);
}
92% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
94% {
transform: translate(-0.5px, 0.5px) rotate(-1.5deg);
}
96% {
transform: translate(1.5px, -2.5px) rotate(0.5deg);
}
98% {
transform: translate(-2.5px, -0.5px) rotate(-1.5deg);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 0 :(得分:7)
它工作正常,但是the background you see is moved to the canvas and no more belong to the body element.且您的body元素的高度为0,因为其中没有内容。您所看到的不是body
元素(该元素不可见),而是从身体窃取背景的画布(您的浏览器窗口)。
更改html
的背景(以便画布采用此背景)并给body
增高一些以查看效果:
$(document).ready(function() {
$('body').addClass('image').addClass('shake');
});
@import url(https://fonts.googleapis.com/css?family=Gentium+Basic);
@import url(https://fonts.googleapis.com/css?family=Dancing+Script);
.image {
background-image: url(https://picsum.photos/200/300?image=0);
height:200px;
}
html {
background:red;
}
.shake {
transform-origin: center center;;
}
.shake:hover {
animation: shake-base 100ms infinite ease-in-out;
}
@keyframes shake-base {
0% {
transform: translate(0px, 0px) rotate(0deg);
}
2% {
transform: translate(-2.5px, -2.5px) rotate(-1.5deg);
}
4% {
transform: translate(1.5px, 0.5px) rotate(0.5deg);
}
6% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
8% {
transform: translate(-0.5px, 1.5px) rotate(-1.5deg);
}
10% {
transform: translate(0.5px, 0.5px) rotate(0.5deg);
}
12% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
14% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
16% {
transform: translate(-1.5px, -2.5px) rotate(0.5deg);
}
18% {
transform: translate(0.5px, -2.5px) rotate(-0.5deg);
}
20% {
transform: translate(-2.5px, -2.5px) rotate(0.5deg);
}
22% {
transform: translate(-0.5px, -1.5px) rotate(0.5deg);
}
24% {
transform: translate(-1.5px, -2.5px) rotate(-1.5deg);
}
26% {
transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
}
28% {
transform: translate(0.5px, 1.5px) rotate(-1.5deg);
}
30% {
transform: translate(-0.5px, 1.5px) rotate(0.5deg);
}
32% {
transform: translate(-1.5px, 0.5px) rotate(0.5deg);
}
34% {
transform: translate(-2.5px, 1.5px) rotate(0.5deg);
}
36% {
transform: translate(-0.5px, -2.5px) rotate(-0.5deg);
}
38% {
transform: translate(0.5px, 1.5px) rotate(-0.5deg);
}
40% {
transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
42% {
transform: translate(-0.5px, 0.5px) rotate(-0.5deg);
}
44% {
transform: translate(1.5px, 1.5px) rotate(0.5deg);
}
46% {
transform: translate(0.5px, -1.5px) rotate(0.5deg);
}
48% {
transform: translate(-1.5px, 0.5px) rotate(-1.5deg);
}
50% {
transform: translate(-0.5px, -1.5px) rotate(-0.5deg);
}
52% {
transform: translate(-0.5px, 1.5px) rotate(-0.5deg);
}
54% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
56% {
transform: translate(-1.5px, -0.5px) rotate(-0.5deg);
}
58% {
transform: translate(1.5px, 0.5px) rotate(-0.5deg);
}
60% {
transform: translate(1.5px, 0.5px) rotate(-0.5deg);
}
62% {
transform: translate(-1.5px, -1.5px) rotate(0.5deg);
}
64% {
transform: translate(1.5px, 0.5px) rotate(-1.5deg);
}
66% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
68% {
transform: translate(0.5px, -2.5px) rotate(-1.5deg);
}
70% {
transform: translate(0.5px, -2.5px) rotate(-1.5deg);
}
72% {
transform: translate(1.5px, -1.5px) rotate(0.5deg);
}
74% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
76% {
transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
78% {
transform: translate(1.5px, -1.5px) rotate(-1.5deg);
}
80% {
transform: translate(-2.5px, -1.5px) rotate(-1.5deg);
}
82% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
84% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
86% {
transform: translate(1.5px, 0.5px) rotate(0.5deg);
}
88% {
transform: translate(-2.5px, 0.5px) rotate(-1.5deg);
}
90% {
transform: translate(0.5px, 1.5px) rotate(0.5deg);
}
92% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
94% {
transform: translate(-0.5px, 0.5px) rotate(-1.5deg);
}
96% {
transform: translate(1.5px, -2.5px) rotate(0.5deg);
}
98% {
transform: translate(-2.5px, -0.5px) rotate(-1.5deg);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:2)
好吧,这是我创建的一支笔,没有CSS前缀。
我已将类<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
@Html.ActionLink("Application name", "Index", "Home", null, new { @class = "navbar-brand" })
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
@Html.Partial("_LoginPartial")
</div>
</div>
</div>
<div class="container body-content">
@RenderBody()
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
添加到div,
image
在div中添加了一些CSS
<div class="image"></div>
并通过jQuery将类添加到图像:
.image {
width: 100vw;
height: 100vh;
background-repeat: no-repeat;
background-size: 100% 100%;
background-image: url(https://picsum.photos/200/300?image=0);
}
完整代码:
$(document).ready(function() {
$('.image').addClass('shake');
});
$(document).ready(function() {
$('.image').addClass('shake');
});
.image {
width: 100vw;
height: 100vh;
background-repeat: no-repeat;
background-size: 100% 100%;
background-image: url(https://picsum.photos/200/300?image=0);
}
.shake {
display: inline-block;
-webkit-transform-origin: center center;
-ms-transform-origin: center center;
-webkit-transform-origin: center top;
}
.shake:hover {
-webkit-animation-name: shake-base;
-ms-animation-name: shake-base;
-webkit-animation-name: shake-base;
-webkit-animation-duration: 100ms;
-ms-animation-duration: 100ms;
-webkit-animation-duration: 100ms;
-webkit-animation-iteration-count: infinite;
-ms-animation-iteration-count: infinite;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: ease-in-out;
-ms-animation-timing-function: ease-in-out;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-delay: 0s;
-ms-animation-delay: 0s;
-webkit-animation-delay: 0s;
}
@keyframes shake-base {
0% {
transform: translate(0px, 0px) rotate(0deg);
}
2% {
transform: translate(-2.5px, -2.5px) rotate(-1.5deg);
}
4% {
transform: translate(1.5px, 0.5px) rotate(0.5deg);
}
6% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
8% {
transform: translate(-0.5px, 1.5px) rotate(-1.5deg);
}
10% {
transform: translate(0.5px, 0.5px) rotate(0.5deg);
}
12% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
14% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
16% {
transform: translate(-1.5px, -2.5px) rotate(0.5deg);
}
18% {
transform: translate(0.5px, -2.5px) rotate(-0.5deg);
}
20% {
transform: translate(-2.5px, -2.5px) rotate(0.5deg);
}
22% {
transform: translate(-0.5px, -1.5px) rotate(0.5deg);
}
24% {
transform: translate(-1.5px, -2.5px) rotate(-1.5deg);
}
26% {
transform: translate(-1.5px, 1.5px) rotate(-0.5deg);
}
28% {
transform: translate(0.5px, 1.5px) rotate(-1.5deg);
}
30% {
transform: translate(-0.5px, 1.5px) rotate(0.5deg);
}
32% {
transform: translate(-1.5px, 0.5px) rotate(0.5deg);
}
34% {
transform: translate(-2.5px, 1.5px) rotate(0.5deg);
}
36% {
transform: translate(-0.5px, -2.5px) rotate(-0.5deg);
}
38% {
transform: translate(0.5px, 1.5px) rotate(-0.5deg);
}
40% {
transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
42% {
transform: translate(-0.5px, 0.5px) rotate(-0.5deg);
}
44% {
transform: translate(1.5px, 1.5px) rotate(0.5deg);
}
46% {
transform: translate(0.5px, -1.5px) rotate(0.5deg);
}
48% {
transform: translate(-1.5px, 0.5px) rotate(-1.5deg);
}
50% {
transform: translate(-0.5px, -1.5px) rotate(-0.5deg);
}
52% {
transform: translate(-0.5px, 1.5px) rotate(-0.5deg);
}
54% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
56% {
transform: translate(-1.5px, -0.5px) rotate(-0.5deg);
}
58% {
transform: translate(1.5px, 0.5px) rotate(-0.5deg);
}
60% {
transform: translate(1.5px, 0.5px) rotate(-0.5deg);
}
62% {
transform: translate(-1.5px, -1.5px) rotate(0.5deg);
}
64% {
transform: translate(1.5px, 0.5px) rotate(-1.5deg);
}
66% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
68% {
transform: translate(0.5px, -2.5px) rotate(-1.5deg);
}
70% {
transform: translate(0.5px, -2.5px) rotate(-1.5deg);
}
72% {
transform: translate(1.5px, -1.5px) rotate(0.5deg);
}
74% {
transform: translate(1.5px, -0.5px) rotate(0.5deg);
}
76% {
transform: translate(1.5px, -1.5px) rotate(-0.5deg);
}
78% {
transform: translate(1.5px, -1.5px) rotate(-1.5deg);
}
80% {
transform: translate(-2.5px, -1.5px) rotate(-1.5deg);
}
82% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
84% {
transform: translate(1.5px, -2.5px) rotate(-0.5deg);
}
86% {
transform: translate(1.5px, 0.5px) rotate(0.5deg);
}
88% {
transform: translate(-2.5px, 0.5px) rotate(-1.5deg);
}
90% {
transform: translate(0.5px, 1.5px) rotate(0.5deg);
}
92% {
transform: translate(-1.5px, 1.5px) rotate(0.5deg);
}
94% {
transform: translate(-0.5px, 0.5px) rotate(-1.5deg);
}
96% {
transform: translate(1.5px, -2.5px) rotate(0.5deg);
}
98% {
transform: translate(-2.5px, -0.5px) rotate(-1.5deg);
}
}
答案 2 :(得分:2)
将您的内容放入包装器中(示例中的.body-content),并将震动类应用于此元素。您还应该对HTML和正文应用全高。
请注意,将摇动类应用于整个身体可能会产生不良后果,因为其内容会溢出,从而导致显示浏览器滚动条。
$(document).ready(function(){
$('body .body-content').addClass('image').addClass('shake');
});
@import url(https://fonts.googleapis.com/css?family=Gentium+Basic);
@import url(https://fonts.googleapis.com/css?family=Dancing+Script);
.image {
background-image:url(https://picsum.photos/200/300?image=0);
}
html{
height: 100%;
}
body {
min-height: 100%;
padding:0;
margin:0;
display: flex;
align-items: stretch;
}
.body-content{
width:100%;
padding:0;
margin:0;
}
.shake {
display: inline-block;
-webkit-transform-origin: center center;
-ms-transform-origin: center center;
-webkit-transform-origin: center center;
}
.shake:hover {
-webkit-animation-name: shake-base;
-ms-animation-name: shake-base;
-webkit-animation-name: shake-base;
-webkit-animation-duration: 100ms;
-ms-animation-duration: 100ms;
-webkit-animation-duration: 100ms;
-webkit-animation-iteration-count: infinite;
-ms-animation-iteration-count: infinite;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: ease-in-out;
-ms-animation-timing-function: ease-in-out;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-delay: 0s;
-ms-animation-delay: 0s;
-webkit-animation-delay: 0s;
}
@-webkit-keyframes shake-base { 0% { -webkit-transform: translate(0px, 0px) rotate(0deg); }
2% { -webkit-transform: translate(1.5px, -2.5px) rotate(-0.5deg); }
4% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-0.5deg); }
6% { -webkit-transform: translate(-0.5px, -2.5px) rotate(-0.5deg); }
8% { -webkit-transform: translate(-0.5px, -1.5px) rotate(-1.5deg); }
10% { -webkit-transform: translate(1.5px, -1.5px) rotate(-0.5deg); }
12% { -webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg); }
14% { -webkit-transform: translate(1.5px, 1.5px) rotate(-0.5deg); }
16% { -webkit-transform: translate(0.5px, -2.5px) rotate(-0.5deg); }
18% { -webkit-transform: translate(-0.5px, -1.5px) rotate(0.5deg); }
20% { -webkit-transform: translate(1.5px, -0.5px) rotate(0.5deg); }
22% { -webkit-transform: translate(-1.5px, 0.5px) rotate(0.5deg); }
24% { -webkit-transform: translate(-2.5px, 1.5px) rotate(-1.5deg); }
26% { -webkit-transform: translate(1.5px, -0.5px) rotate(-1.5deg); }
28% { -webkit-transform: translate(0.5px, -0.5px) rotate(-1.5deg); }
30% { -webkit-transform: translate(-0.5px, -0.5px) rotate(-1.5deg); }
32% { -webkit-transform: translate(-2.5px, 1.5px) rotate(0.5deg); }
34% { -webkit-transform: translate(0.5px, -0.5px) rotate(0.5deg); }
36% { -webkit-transform: translate(0.5px, -0.5px) rotate(-0.5deg); }
38% { -webkit-transform: translate(1.5px, -0.5px) rotate(-0.5deg); }
40% { -webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); }
42% { -webkit-transform: translate(-2.5px, 1.5px) rotate(-1.5deg); }
44% { -webkit-transform: translate(0.5px, 0.5px) rotate(-0.5deg); }
46% { -webkit-transform: translate(-2.5px, -1.5px) rotate(-0.5deg); }
48% { -webkit-transform: translate(1.5px, 1.5px) rotate(0.5deg); }
50% { -webkit-transform: translate(1.5px, 1.5px) rotate(-1.5deg); }
52% { -webkit-transform: translate(1.5px, -1.5px) rotate(-0.5deg); }
54% { -webkit-transform: translate(1.5px, -2.5px) rotate(0.5deg); }
56% { -webkit-transform: translate(1.5px, -0.5px) rotate(-0.5deg); }
58% { -webkit-transform: translate(1.5px, -0.5px) rotate(0.5deg); }
60% { -webkit-transform: translate(-0.5px, -1.5px) rotate(-0.5deg); }
62% { -webkit-transform: translate(0.5px, 0.5px) rotate(-1.5deg); }
64% { -webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); }
66% { -webkit-transform: translate(0.5px, 1.5px) rotate(0.5deg); }
68% { -webkit-transform: translate(-0.5px, -2.5px) rotate(-1.5deg); }
70% { -webkit-transform: translate(0.5px, -2.5px) rotate(-1.5deg); }
72% { -webkit-transform: translate(0.5px, -1.5px) rotate(0.5deg); }
74% { -webkit-transform: translate(-2.5px, 1.5px) rotate(-0.5deg); }
76% { -webkit-transform: translate(-1.5px, 0.5px) rotate(-0.5deg); }
78% { -webkit-transform: translate(-2.5px, -2.5px) rotate(-1.5deg); }
80% { -webkit-transform: translate(-0.5px, 0.5px) rotate(0.5deg); }
82% { -webkit-transform: translate(-2.5px, -0.5px) rotate(0.5deg); }
84% { -webkit-transform: translate(-1.5px, 1.5px) rotate(-0.5deg); }
86% { -webkit-transform: translate(-2.5px, 1.5px) rotate(-0.5deg); }
88% { -webkit-transform: translate(-1.5px, -2.5px) rotate(-0.5deg); }
90% { -webkit-transform: translate(-0.5px, -0.5px) rotate(-1.5deg); }
92% { -webkit-transform: translate(1.5px, -1.5px) rotate(-1.5deg); }
94% { -webkit-transform: translate(-0.5px, -1.5px) rotate(-1.5deg); }
96% { -webkit-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); }
98% { -webkit-transform: translate(1.5px, -2.5px) rotate(-1.5deg); } }
@-ms-keyframes shake-base { 0% { -ms-transform: translate(0px, 0px) rotate(0deg); }
2% { -ms-transform: translate(1.5px, 1.5px) rotate(0.5deg); }
4% { -ms-transform: translate(0.5px, -2.5px) rotate(-0.5deg); }
6% { -ms-transform: translate(-2.5px, 1.5px) rotate(-1.5deg); }
8% { -ms-transform: translate(-2.5px, -0.5px) rotate(-1.5deg); }
10% { -ms-transform: translate(-1.5px, -0.5px) rotate(-1.5deg); }
12% { -ms-transform: translate(-0.5px, -2.5px) rotate(-1.5deg); }
14% { -ms-transform: translate(-2.5px, -2.5px) rotate(0.5deg); }
16% { -ms-transform: translate(-1.5px, -1.5px) rotate(-0.5deg); }
18% { -ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg); }
20% { -ms-transform: translate(-1.5px, 0.5px) rotate(-0.5deg); }
22% { -ms-transform: translate(1.5px, -1.5px) rotate(-1.5deg); }
24% { -ms-transform: translate(-2.5px, -0.5px) rotate(-0.5deg); }
26% { -ms-transform: translate(-0.5px, -2.5px) rotate(-0.5deg); }
28% { -ms-transform: translate(0.5px, -1.5px) rotate(-0.5deg); }
30% { -ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg); }
32% { -ms-transform: translate(-1.5px, 1.5px) rotate(-0.5deg); }
34% { -ms-transform: translate(-0.5px, -1.5px) rotate(-1.5deg); }
36% { -ms-transform: translate(1.5px, -0.5px) rotate(-0.5deg); }
38% { -ms-transform: translate(-2.5px, 0.5px) rotate(-0.5deg); }
40% { -ms-transform: translate(1.5px, -1.5px) rotate(0.5deg); }
42% { -ms-transform: translate(-0.5px, 1.5px) rotate(-0.5deg); }
44% { -ms-transform: translate(-0.5px, 0.5px) rotate(-0.5deg); }
46% { -ms-transform: translate(1.5px, 0.5px) rotate(-1.5deg); }
48% { -ms-transform: translate(1.5px, 0.5px) rotate(0.5deg); }
50% { -ms-transform: translate(-0.5px, -0.5px) rotate(-0.5deg); }
52% { -ms-transform: translate(-2.5px, 1.5px) rotate(0.5deg); }
54% { -ms-transform: translate(-0.5px, -2.5px) rotate(0.5deg); }
56% { -ms-transform: translate(-0.5px, 1.5px) rotate(0.5deg); }
58% { -ms-transform: translate(-1.5px, 0.5px) rotate(-0.5deg); }
60% { -ms-transform: translate(-0.5px, -1.5px) rotate(0.5deg); }
62% { -ms-transform: translate(1.5px, -1.5px) rotate(0.5deg); }
64% { -ms-transform: translate(0.5px, 0.5px) rotate(-1.5deg); }
66% { -ms-transform: translate(-0.5px, 1.5px) rotate(-1.5deg); }
68% { -ms-transform: translate(-1.5px, -2.5px) rotate(-0.5deg); }
70% { -ms-transform: translate(-1.5px, -2.5px) rotate(-1.5deg); }
72% { -ms-transform: translate(-2.5px, -0.5px) rotate(-1.5deg); }
74% { -ms-transform: translate(0.5px, 1.5px) rotate(0.5deg); }
76% { -ms-transform: translate(-2.5px, -2.5px) rotate(-1.5deg); }
78% { -ms-transform: translate(-1.5px, -1.5px) rotate(-0.5deg); }
80% { -ms-transform: translate(-1.5px, -0.5px) rotate(-1.5deg); }
82% { -ms-transform: translate(0.5px, 1.5px) rotate(-1.5deg); }
84% { -ms-transform: translate(-2.5px, 0.5px) rotate(-1.5deg); }
86% { -ms-transform: translate(1.5px, -1.5px) rotate(0.5deg); }
88% { -ms-transform: translate(0.5px, -2.5px) rotate(0.5deg); }
90% { -ms-transform: translate(-1.5px, -1.5px) rotate(-1.5deg); }
92% { -ms-transform: translate(-1.5px, -1.5px) rotate(-1.5deg); }
94% { -ms-transform: translate(-0.5px, 1.5px) rotate(-0.5deg); }
96% { -ms-transform: translate(-1.5px, 0.5px) rotate(-0.5deg); }
98% { -ms-transform: translate(-0.5px, -1.5px) rotate(-1.5deg); } }
@keyframes shake-base { 0% { transform: translate(0px, 0px) rotate(0deg); }
2% { transform: translate(-2.5px, -2.5px) rotate(-1.5deg); }
4% { transform: translate(1.5px, 0.5px) rotate(0.5deg); }
6% { transform: translate(1.5px, -0.5px) rotate(0.5deg); }
8% { transform: translate(-0.5px, 1.5px) rotate(-1.5deg); }
10% { transform: translate(0.5px, 0.5px) rotate(0.5deg); }
12% { transform: translate(1.5px, -2.5px) rotate(-0.5deg); }
14% { transform: translate(1.5px, -0.5px) rotate(0.5deg); }
16% { transform: translate(-1.5px, -2.5px) rotate(0.5deg); }
18% { transform: translate(0.5px, -2.5px) rotate(-0.5deg); }
20% { transform: translate(-2.5px, -2.5px) rotate(0.5deg); }
22% { transform: translate(-0.5px, -1.5px) rotate(0.5deg); }
24% { transform: translate(-1.5px, -2.5px) rotate(-1.5deg); }
26% { transform: translate(-1.5px, 1.5px) rotate(-0.5deg); }
28% { transform: translate(0.5px, 1.5px) rotate(-1.5deg); }
30% { transform: translate(-0.5px, 1.5px) rotate(0.5deg); }
32% { transform: translate(-1.5px, 0.5px) rotate(0.5deg); }
34% { transform: translate(-2.5px, 1.5px) rotate(0.5deg); }
36% { transform: translate(-0.5px, -2.5px) rotate(-0.5deg); }
38% { transform: translate(0.5px, 1.5px) rotate(-0.5deg); }
40% { transform: translate(1.5px, -1.5px) rotate(-0.5deg); }
42% { transform: translate(-0.5px, 0.5px) rotate(-0.5deg); }
44% { transform: translate(1.5px, 1.5px) rotate(0.5deg); }
46% { transform: translate(0.5px, -1.5px) rotate(0.5deg); }
48% { transform: translate(-1.5px, 0.5px) rotate(-1.5deg); }
50% { transform: translate(-0.5px, -1.5px) rotate(-0.5deg); }
52% { transform: translate(-0.5px, 1.5px) rotate(-0.5deg); }
54% { transform: translate(-1.5px, 1.5px) rotate(0.5deg); }
56% { transform: translate(-1.5px, -0.5px) rotate(-0.5deg); }
58% { transform: translate(1.5px, 0.5px) rotate(-0.5deg); }
60% { transform: translate(1.5px, 0.5px) rotate(-0.5deg); }
62% { transform: translate(-1.5px, -1.5px) rotate(0.5deg); }
64% { transform: translate(1.5px, 0.5px) rotate(-1.5deg); }
66% { transform: translate(1.5px, -0.5px) rotate(0.5deg); }
68% { transform: translate(0.5px, -2.5px) rotate(-1.5deg); }
70% { transform: translate(0.5px, -2.5px) rotate(-1.5deg); }
72% { transform: translate(1.5px, -1.5px) rotate(0.5deg); }
74% { transform: translate(1.5px, -0.5px) rotate(0.5deg); }
76% { transform: translate(1.5px, -1.5px) rotate(-0.5deg); }
78% { transform: translate(1.5px, -1.5px) rotate(-1.5deg); }
80% { transform: translate(-2.5px, -1.5px) rotate(-1.5deg); }
82% { transform: translate(1.5px, -2.5px) rotate(-0.5deg); }
84% { transform: translate(1.5px, -2.5px) rotate(-0.5deg); }
86% { transform: translate(1.5px, 0.5px) rotate(0.5deg); }
88% { transform: translate(-2.5px, 0.5px) rotate(-1.5deg); }
90% { transform: translate(0.5px, 1.5px) rotate(0.5deg); }
92% { transform: translate(-1.5px, 1.5px) rotate(0.5deg); }
94% { transform: translate(-0.5px, 0.5px) rotate(-1.5deg); }
96% { transform: translate(1.5px, -2.5px) rotate(0.5deg); }
98% { transform: translate(-2.5px, -0.5px) rotate(-1.5deg); } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div class="body-content"></div>
</body>