Показать сообщение отдельно
  #1 (permalink)  
Старый 20.11.2015, 13:15
Интересующийся
Отправить личное сообщение для batcave Посмотреть профиль Найти все сообщения от batcave
 
Регистрация: 19.10.2015
Сообщений: 14

Не останавливается setInterval
Всем привет. Нужно чтобы div остановил свое движение когда его offsetLeft превысит определенное число. Например 180px. Вроде делаю все правильно, а не останавливается. Вот ссылочка, чтобы было понятно к чему код:
http://billyandthecure.esy.es/sand.html
пытаюсь сделать спрайтовую анимацию через сетИнтервал.
Сам код:
var divLink = document.querySelector('.zelda');
var linkOffsetLeft = divLink.offsetLeft;
var movementRightArray = ['0% 70%', '35% 70%', '0% 70%', '100% 70%'];
var i = 0;
var timerId;
divLink.addEventListener('click', move);
		
function move(){
	if( linkOffsetLeft < 180){
 	      timerId = setInterval(moveRight, 300);
	} else { clearInterval(timerId)}
}
function moveRight(){
	 linkOffsetLeft += 5;
	divLink.style.left = linkOffsetLeft + 'px'; 
	divLink.style.backgroundPosition = ''+movementRightArray[i]+'';
	i++;
	if (i > 3) { i = 0};
}
Ответить с цитированием