警告:家里的 jquery/javascript 新手。我在这里使用教程制作了一个动画,其中图像在悬停时来回摆动。
然而,在第一次悬停事件之后,图像只会来回移动 1 次,而在第一次悬停事件时,它会来回摆动 5 次(由 swings 变量定义的次数)。我希望它在每个悬停事件中摆动相同的次数。
我尝试更改旋转、摆动和摆动计数变量,并尝试使 pendulumrest 函数与摆动函数匹配,并更改摆锤摆动的 if/else 语句。没有任何效果 - 我做错了什么?这是代码:
<script type="text/javascript">
(function($) {
$(document).ready(function() {
var rotation = 5;
var initrotation = rotation;
var swingtime = 603;
var swings = 5;
var swingcount = 0;
var startatcentre = true;
if (startatcentre == true) {
initrotation = 0;
}
$('#pendulum-child').mouseenter(function() {
function init() {
$('#pendulum-parent').animate({rotate: initrotation}, 0, function () {
$('#pendulum-parent').css("display", "block");
rotation *= -1;
swingcount++;
pendulumswing();
});
}
function pendulumswing() {
$('#pendulum-parent').animate({rotate: rotation},swingtime, "swing", function(){
rotation *= -1;
if (swingcount >= swings) {
pendulumrest();
} else {
swingcount++;
pendulumswing();
}
});
}
function pendulumrest() {
$('#pendulum-parent').animate({rotate: 0},(swingtime/1.5), "swing");
}
init();
});
});
})(jQuery);
</script>