Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2011, 20:05
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Из-за цикла не работает анимация
Здравсвуйте
Есть код анимации
window.onload = function()
	{
		var distance = 1,
			speed = 0.5,
			li = document.getElementById("lists-r1").children,
			arrayCoords = [0, 26, 53, 78, 104, 130, 156, 182, 208, 234, 260],
			count = 1,
			i = 0,
			arrayCoordsMax = li.length;
			
		for(i; i <= arrayCoordsMax; i ++)
		{
			alert(li[i].offsetTop)
		}		

		function animate()
		{			
			distance = distance + speed;
			document.getElementById("playDiv-r1").style.top = distance + "px";
	
			if(distance == arrayCoords[count])
			{
				setTimeout(animate, 1500);	
				count ++;
			}else
			 	setTimeout(animate, 10);  	
				
			if(distance == 260)
				speed = 0;				
		};		
		animate();
	};
</script>

Сейчас анимация не работает, но если убрать цикл for, то все сразу заработает.
В чем проблема, подскажите ?
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2011, 20:30
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

li = document.getElementById("lists-r1").children чего это такое?

li = document.getElementTagName(имя тега но не ид);
for(i; i <= arrayCoordsMax; i ++)
{
alert(li[i].offsetTop)
}
или потомков элемента нужно найти но в лбом развале это li = document.getElementById("lists-r1").children

Последний раз редактировалось dmitriymar, 04.08.2011 в 20:35.
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2011, 20:30
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Уже разобрался.
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2011, 20:30
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от dmitriymar Посмотреть сообщение
li = document.getElementById("lists-r1").children чего это такое?
Это у меня в ul находятся li и хочу к ним добраться, что я и сделал.
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2011, 20:43
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Проблема возникла в другом, если я пишу ф-ю, как "немедленно вызываемую", то почему-то не работает анимация
window.onload = function()
	{
		var distance = 1,
			speed = 0.5,
			li = document.getElementById("lists-r1").children,
			count = 1,
			i = 0;

		(function()
		{			
			distance = distance + speed;
			document.getElementById("playDiv-r1").style.top = distance + "px";	
	
			if(distance == li[count].offsetTop)
			{
				setTimeout(animate, 1500);	
				count ++;
			}else
			 	setTimeout(animate, 10);  	
				
			if(distance == 260)
				speed = 0;				
		}());		
		
	};

Вроде ф-я написанна правильно
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2011, 20:43
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

действительно,есть такое дело
Ответить с цитированием
  #7 (permalink)  
Старый 04.08.2011, 20:48
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Isaac
}());
)();
Ответить с цитированием
  #8 (permalink)  
Старый 04.08.2011, 20:49
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от dmitriymar Посмотреть сообщение
действительно,есть такое дело
Странно, а может такое быть, что переменные за этой ф-ей могут быть не видны ?
Ответить с цитированием
  #9 (permalink)  
Старый 04.08.2011, 20:50
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от dmitriymar Посмотреть сообщение
)();
Не понял, что вы имеете в виду, я вроде правильно все закрыл
Ответить с цитированием
  #10 (permalink)  
Старый 04.08.2011, 21:00
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

нет не правильно. сначала закрывается скобка тело функции) ,затем её вызов().
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает jQuery анимация в Firefox makingpretty Events/DOM/Window 1 22.06.2011 00:05
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Не работает анимация jquery hugi jQuery 1 30.08.2010 20:25
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59