предупреждение: jquery/javascript новичок в доме. Я использовал tutorial here, чтобы сделать анимацию, где изображение качается вперед и назад при наведении.зависание анимации не работает полностью после первого события
Однако после первого события наведения изображение будет двигаться только вперед и назад 1 раз, тогда как при первом событии наведения он разворачивается назад и вперед 5 раз (число определяется переменной качания). Я хочу, чтобы он качался столько же раз в каждом событии наведения.
Я попытался изменить переменные вращения, качелей и swingcount, а также попытаться совместить функцию маятника с функцией поворота и изменить инструкцию 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>
В вашей функции 'init()' вам нужно повторно инициализировать переменные, к которым они установлены, на '$ (document) .ready()'. – musicnothing
@AlexMorrise спасибо. какие-либо рекомендации о том, как это сделать? я попытался скопировать их в функцию, но это сделало анимацию нервной, чтобы она не была правильной. – surfbird0713
Все, о чем я могу думать, это просто копирование инициализаций в функцию 'init()' непосредственно перед вызовом '.animate()', как вы сказали. Но убедитесь, что вы не копируете часть 'var' (вы не хотите повторно объявлять переменные). – musicnothing