Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   выполнение функции перед анимацией (https://javascript.ru/forum/jquery/47509-vypolnenie-funkcii-pered-animaciejj.html)

natureproj 27.05.2014 00:52

выполнение функции перед анимацией
 
Доброго времени суток, кто читает эту тему. Столкнулся с такой проблемой: нужно выполнить функцию перед самой анимацией.
Пробую так:
$('#car'+z).animate({'margin-left': 12, 'margin-top':  12 },time, function() {
					var dx = x1-x;
								alert('123');
														
							});

Но функция выполняется полсе анимации и не пойму еще почему не выводит "123".

рони 27.05.2014 00:57

natureproj,
так и ставьте вашу функцию перед анимацей :-?

natureproj 27.05.2014 01:14

Дело в том что у меня цикл. Суть кода такая: катается машинка и на поворотах меняется направление и соответственно сама картинка.
Весь код такой, на примере х кординаты:
var steptop =72;
	var stepleft =100;
	var top0=293;
	var left0=20;
	function car(z)
	{
		var x = Math.floor(Math.random()*10);
		 x= x - Math.floor(x/4)*4;
		var y = Math.floor(Math.random()*10);
		y= y - Math.floor(y/4)*4;
		$('#car'+z).css('margin-top', top0 - x*steptop + y*steptop);
		$('#car'+z).css('margin-left',left0 + x*stepleft + y*stepleft);

		var i =0;
		while(i<10)
		{
			var x1 = Math.floor(Math.random()*10);
				var time = 1000*Math.abs(x1-x);

					$('#car'+z).animate({'margin-left': left0+  x1*stepleft + y*stepleft, 'margin-top':  top0 - x1*steptop + y*steptop },time, function() 
							{
								var dx = x1-x;
								if(dx<=0)
								{
									$('#car'+z).attr("src","/images/carlb.png");
								}
								else
								{
									$('#car'+z).attr("src","/images/carrt.png");
								}							
							});
			x=x1;

					i++;
		}
	}

Если просто поставить функию перед анимацией - она вызовется в цикле сразу 10 раз и все.

рони 27.05.2014 01:21

Цитата:

Сообщение от natureproj
Дело в том что у меня цикл.

у вас 10 машин сразу катается ? если 1 зачем цикл?

natureproj 27.05.2014 08:43

этот цикл на повороты одной машинки. Дальше функци car() вызывается 10 раз и тогда катается 10 машинок

рони 27.05.2014 11:54

natureproj,
вот тут тоже машинка катается и поворачивает
http://javascript.ru/forum/events/40653-ispolzovanie-%24-deferred-so-storonnimi-plaginami-jquery.html#post267760

а здесь так даже человечек дорогу перебегает перед машинами http://learn.javascript.ru/play/l9hKp
может на какие мысли натолкнут


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