Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2014, 22:26
Аспирант
Отправить личное сообщение для domius Посмотреть профиль Найти все сообщения от domius
 
Регистрация: 27.09.2013
Сообщений: 39

вопрос о анимации
Есть анимация , как сделать так чтоб анимация не вызывалась второй раз пока не окончить роботу первый setInterval ?

function animate (opts) {
	var start, move;

		start = new Date();

	move = setInterval(function () {

	var progres = (new Date - start) / opts.progres;

		if(progres >= 1) progres = 1;

		opts.init(progres);
		/* для каждого свою дыстанцию */

		if(progres == 1) clearInterval(move);
	},10)
}

function draw (to, progres, elem) {
	animate({
		to: to,
		progres: progres,
		init: function (progres) {
			elem.style.left = this.to*progres + 'px';
		}
	})
}
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2014, 22:55
Профессор
Отправить личное сообщение для alex.vv Посмотреть профиль Найти все сообщения от alex.vv
 
Регистрация: 15.04.2014
Сообщений: 176

Например, через глобальную переменную.
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2014, 01:25
Аватар для a.malitsky
Аспирант
Отправить личное сообщение для a.malitsky Посмотреть профиль Найти все сообщения от a.malitsky
 
Регистрация: 26.03.2010
Сообщений: 56

или замыкание другой функцией, или объект в котором animate - метод
Ответить с цитированием
  #4 (permalink)  
Старый 11.05.2014, 02:14
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

не проверял но должен работать
function animate (opts) {
	var start, move;

     if( animate.state ) return;

     animate.state = true;


	start = new Date();

	move = setInterval(function () {

	var progres = (new Date - start) / opts.progres;

		if(progres >= 1) progres = 1;

		opts.init(progres);
		/* для каждого свою дыстанцию */

		if(progres == 1) {
           animate.state = false;
           clearInterval(move);
         }
	},10)
}

function draw (to, progres, elem) {
	animate({
		to: to,
		progres: progres,
		init: function (progres) {
			elem.style.left = this.to*progres + 'px';
		}
	})
}
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.

Последний раз редактировалось cyber, 11.05.2014 в 02:18.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начало анимации с места предыдущей анимации FanAizu (X)HTML/CSS 3 21.03.2014 12:39
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по анимации stalker77 jQuery 6 30.10.2011 02:29
Вопрос по анимации. rety Ваши сайты и скрипты 5 08.09.2011 21:21
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13