Показать сообщение отдельно
  #4 (permalink)  
Старый 01.10.2013, 18:55
Новичок на форуме
Отправить личное сообщение для d1am Посмотреть профиль Найти все сообщения от d1am
 
Регистрация: 01.10.2013
Сообщений: 3

Немного продвинулся вперед, но опять наткнулся на сложность. Благодаря форуму понял, что для зацикленной анимации нужно использовать callback в animate - прописать в нем условие повторения.

Изменил строку
ul.animate({'left':-1*pos[curindex]});
. Добавил еще интервал.

Получил следующее:

setInterval(function() {
	      ul.animate({'left':-1*pos[curindex]}, 500, function() { 
		  
		// начало повторяющейся функции		
			curindex++;		
		// конец повторяющейся функции
		  });
	   }, 500)


Но в данном случае все слайды проходят один раз и останавливаются. Прописываю вместо
curindex++;
условие:
if(curindex<pos.length-3){ // в слайдере 3 блока
			curindex++;
}else{
			ul.css('left' , -1* pos[pos.length-4]);
			list.eq(0).insertAfter(list.eq(list.length-1));
			ul.animate({left: -1* pos[pos.length-3]}, {queue: false});
}

И тут спотыкаюсь - слайдер начинает некорректно листаться, когда приступает к выполнению "else" (после того как пролистал первые 3 блока). Эти вычисления писал не я, поэтому я в них не могу разобраться.
Буду рад, если кто-то подскажет.
Ответить с цитированием