У меня есть две ссылки на страницы, которые вызывают анимацию jQuery.jQuery aimate in animate callback работает только один раз
Функция обратного вызова в анимации запускает вторую анимацию.
Это прекрасно работает, однако, он работает только при первом вызове функции.
Каждый раз, когда первая из двух анимаций работает, а вторая - нет, она просто меняет CSS без эффекта.
У меня мозг здесь, без эффекта (каламбур).
function switchItem(e) {
e.preventDefault();
// If not current piece
if($(this).hasClass('light')) {
/* VARIABLES */
var container = $('.portfolio footer .portfolio_content');
var link = $(this).attr('id');
var newItem = $(this).html();
/*===================================================
* This is the Key part here
===================================================*/
/* FIRST ANIMATION */
container.animate({
'right':'-100%'
}, 300, 'swing',
// Callback Function
function() {
$(this).html('').css({'left':'-100%'});
$.get('inc/portfolio/'+link+'.php', function(data) {
container.html(data);
/* SECOND ANIMATION */
container.animate({
'left':'0%'
}, 300, 'swing');
});
});
}
}
Вот демонстрация: http://eoghanoloughlin.com/my_site/#portfolio
Возможно ли, что это связано с тем, что вы помещаете анимацию в функцию @ get @ вместо прямого вызова функции обратного вызова? попробуйте переместить анимацию за пределы get, но внутри обратного вызова. – MaxOvrdrv
Почему вы анимируете правую и левую? Я думаю, вам нужно выбрать и придерживаться этого. Правильный и левый css могут быть противоречивыми. * в двух вызовах container.animate() ... –
вы были правы, они были противоречивыми. – loxyboi