Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как сделать непрерывную и плавную анимацию с jQuery в backgroundPosition? (https://javascript.ru/forum/jquery/34836-kak-sdelat-nepreryvnuyu-i-plavnuyu-animaciyu-s-jquery-v-backgroundposition.html)

Isaac 21.01.2013 12:57

Как сделать непрерывную и плавную анимацию с jQuery в backgroundPosition?
 
Здравствуйте, подскажите пожалуйста.
Есть код:
$('.test').animate({ backgroundPosition: '-220px ' + posY }, 'linear', function () { $(this).css({ 'backgroundPosition': '-220px 0px'}) }).delay().
               animate({ backgroundPosition: '-220px ' + posY }, 'linear', function () { $(this).css({ 'backgroundPosition': '-220px 0px'}) }).delay().
               animate({ backgroundPosition: '-220px ' + posY }, 'linear', function () { $(this).css({ 'backgroundPosition': '0px 0px'}) });

Он прокручивает бэкграунд 3 раза, как видите, но после каждого круга, когда анимация запускается следующий раз — это видно, так как есть небольшая задержка. Как мне объеденить эти 3 анимации в одну, так чтоб анимация прокрутки бэкграунда была плавной?
Спасибо.

Dmitriyff 21.01.2013 13:14

написал на бум, сам не пробовал, но возможно натолкнет в сторону правильно рещения

про queue, про dequeue

var reset = function() {
	$(this).css({ 'backgroundPosition': '-220px 0px'})
		    .dequeue();
}

var animate = function() {
	$(this).animate({ backgroundPosition: '-220px ' + posY }, 'linear');
		   .dequeue();
}

$('.test').animate({ backgroundPosition: '-220px ' + posY }, 'linear')
		  .queue(reset)
		  .queue(animate)
		  .queue(reset)
		  .queue(animate)
		  .queue(reset)

Dmitriyff 21.01.2013 14:23

отпишитесь если помогло, сам черт его знает когда в это сунусь. а так буду знать, правильно ткнул или нет


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