gpt4 book ai didi

html - 当鼠标不再悬停时,悬停动画会立即停止吗?

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:41 25 4
gpt4 key购买 nike

我有一个图像,它有一个摆动动画,当鼠标悬停在它上面时它会被激活并且应该持续大约一秒钟。如果鼠标停留在图像上,它会完美运行并持续那么长的时间。但是,如果我将鼠标从图像上移开,它会猛地回到原位并且不会完成动画。我怎样才能让它继续播放动画,然后像鼠标悬停在它上面时那样停止播放?

HTML:

<img class="animated wobble" src="image/elephant.png"/>

CSS:

.animated {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}

.animated.infinite {
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
}

.animated.hinge {
-webkit-animation-duration: 2s;
animation-duration: 2s;
}

@-webkit-keyframes wobble {
0% {
-webkit-transform: none;
transform: none;
}

15% {
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
}

30% {
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
}

45% {
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
}

60% {
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
}

75% {
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
}

100% {
-webkit-transform: none;
transform: none;
}
}

@keyframes wobble {
0% {
-webkit-transform: none;
-ms-transform: none;
transform: none;
}

15% {
-webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
-ms-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
}

30% {
-webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
-ms-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
}

45% {
-webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
-ms-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
}

60% {
-webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
-ms-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
}

75% {
-webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
-ms-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
}

100% {
-webkit-transform: none;
-ms-transform: none;
transform: none;
}
}

.wobble:hover {
-webkit-animation-name: wobble;
animation-name: wobble;
}

最佳答案

SOLUTION

HTML

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-git1.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<img class="animated" src="http://placehold.it/350x250"/>
</body>
</html>

JS

$(".animated").bind("webkitAnimationEnd mozAnimationEnd animationEnd", function(){
$(this).removeClass("wobble")
}).hover(function(){
$(this).addClass("wobble");
});

CSS

.wobble {
animation-duration: 1s;
animation-fill-mode: both;
animation-name: wobble;
}

@keyframes wobble {
0%, 100% {
transform: none;
}

15% {
transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
}

30% {
transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
}

45% {
transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
}

60% {
transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
}

75% {
transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
}

}

关于html - 当鼠标不再悬停时,悬停动画会立即停止吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25039172/

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