У меня есть эта функция:JQuery анимации получает выполняется только один раз
function flipAndFade(elemToAnimate,overlay) {
elemToAnimate.animate({ textIndent: 0 }, {
step: function (go) {
$(this).css('-moz-transform', 'rotateY(' + go + '360deg)');
$(this).css('-webkit-transform', 'rotateY(' + go + '360deg)');
$(this).css('-o-transform', 'rotateY(' + go + '360deg)');
$(this).css('transform', 'rotateY(' + go + '360deg)');
$(".overlay-bg").delay('600').fadeIn('slow', function() {
$(this).stop();
});
overlay.delay('600').fadeIn('slow', function() {
$(this).stop();
});
$(".overlay-bg").animate({ "top": 0 }, { duration: 1 });
$(".overlay-bg").animate({ "left": 0 }, { duration: 1 });
overlay.animate({ "top": 0 }, { duration: 1 });
overlay.animate({ "left": 0 }, { duration: 1 });
},
duration: 1000,
complete: function() {
$(this).animate().stop();
}
});
}
И у меня есть два elemnts прослушивания для мыши:
$(".module3").click(function(){
flipAndFade($(".module3"), $(".overlay3"));
});
$(".module4").click(function(){
flipAndFade($(".module4"), $(".overlay4"));
});
Но проблема в том, когда я нажимаю на первом элементе все работы хорошо. Но тогда щелчок по второму элементу не выполняет анимацию. Если я обновляю и нажимаю на второй, он работает, а затем первый - нет. Я читал в сообщениях о запуске функций, но я не понимаю, как это сделать.
Заранее спасибо
FYI, и это, безусловно, только личное предпочтение, но, похоже, вы смешиваете анимацию CSS и анимацию jQuery. Я предлагаю придерживаться только анимации CSS, установить логику в классах в вашем файле CSS. Таким образом, чтобы вызвать анимацию, вы можете просто добавить jQuery класс, который оживляет объект. Должно сделать вещи немного легче организовать. –