Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не срабатывает анимация при повторном вызове. (https://javascript.ru/forum/jquery/33297-ne-srabatyvaet-animaciya-pri-povtornom-vyzove.html)

Gesandte 18.11.2012 01:44

Не срабатывает анимация при повторном вызове.
 
В общем при первичном вызове блок успешно раскрывается и сворачивается в исходное положение, но при повторном вызове вся анимация отваливается....как быть?

/* window */
				var x;
				var y;

				// show
				$(".portfolio__cover").click(function() {
					// получаем координаты
					var offset = $(this).offset();
					x = offset.left;
					y = offset.top;

					var el = $(this).siblings('div.portfolio__content')

					$(el)
						.css({
							left: x,
							top: y
						})
						.addClass("active")
						.animate({width: '100%', left: '0'}, 300)
						.animate({height: '100%', top: '0'}, 300);
				});

				// hide
				$("a.close").click(function() {
					var el = $(this).parent("div.portfolio__content");

					$(el)
						.animate({height: '15em', top: y}, 300)
						.animate({width: '20%', left: x}, 300);

						$(el).queue(function () {
							$(el).removeClass("active");
							$(el).removeAttr("style");
						});

					return false;
				});
			});

Gesandte 18.11.2012 14:27

ссылку забыл)

http://mfrolov.1gb.ru/index.php?q=portfolio

Gesandte 23.11.2012 16:32

вариантов нет?

Hoshinokoe 23.11.2012 17:58

Gesandte,

На сколько я вижу вы неправильно используете queue метод.
Попробуйте вместо него добавить обычный коллбэк в animate.

$("a.close").click(function () {
    var el = $(this).parent('div.portfolio__content');
    $(el)
    .animate({ height: width, top: y }, 300)
    .delay(100)
    .animate({ width: '20%', left: x }, 300, function () {
        $(el).removeClass('active');
        $(el).removeAttr('style');
    });
            
    return false;
});

Gesandte 23.11.2012 23:10

Hoshinokoe, спасибо за помощь) все заработало)))


Часовой пояс GMT +3, время: 05:52.