gpt4 book ai didi

jquery - 无法对 body 应用 CSS 抖动效果

转载 作者:太空狗 更新时间:2023-10-29 15:31:32 25 4
gpt4 key购买 nike

我有一个 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>

最佳答案

它工作正常但是 the background you see is moved to the canvas and no more belong to the body element.并且您的 body 元素的高度为 0,因为其中没有内容。您看到的不是 body 元素(这个元素不可见),而是窃取 body 背景的 Canvas (您的浏览器窗口)。

更改 html 的背景(以便 Canvas 采用此背景)并给 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>

关于jquery - 无法对 body 应用 CSS 抖动效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53429240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com