Javascript.RU

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

как грамотно выполнить задержку?
На событие hover, стоит запуск функции анимации
$("#block").hover(
      function () {
	  cartoon_set_2(); //раскрытие img1->img2->imgn
      },
      function () {
	  cartoon_set_1();//раскрытие imgn->img2->img1
      }
    );

Вот сами функции
var cartoon_set_2 = function() {
	stop_all();
	cartoon_image2.play({
			id:['block','cartoon'],//id div элемента и img элемента
			src:'test_img/11.jpg',//ссылка на изображение
			frames_x:8,//количество кадров на изображении по x
			frames_y:1,//количество кадров на изображении по y
			width:2400,//ширина изображения
			height:383,//высота изображения
			fps:24,//скорость показа кадров в секунду, можно писать дробные числа
			reverse:false,//если true то проигрывается с конца в начало
			playandstop:true,//если true то проиграть 1 раз и передать управление функции next
			next: function () {//выполнится только если playandstop==true
				//сюда можно писать следующий код который будет выполняться после завершения анимации
			}
		});
}
var cartoon_set_1 = function() {
	stop_all();
	cartoon_image2.play({
			id:['block','cartoon'],//id div элемента и img элемента
			src:'test_img/11.jpg',//ссылка на изображение
			frames_x:8,//количество кадров на изображении по x
			frames_y:1,//количество кадров на изображении по y
			width:2400,//ширина изображения
			height:383,//высота изображения
			fps:24,//скорость показа кадров в секунду, можно писать дробные числа
			reverse:true,//если true то проигрывается с конца в начало
			playandstop:true,//если true то проиграть 1 раз и передать управление функции next
			next: function () {//выполнится только если playandstop==true
				//сюда можно писать следующий код который будет выполняться после завершения анимации
			}
		});

}

Минус в том что если, двигать курсором быстро, то не закончив cartoon_set_2();
начинается cartoon_set_1();
Как сделать так, что пока не закончилась cartoon_set_2(); не запускать cartoon_set_1();
Ответить с цитированием
  #2 (permalink)  
Старый 26.04.2013, 13:28
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

FirstRelict,
флаг :
var flag = true;
var cartoon_set_2 = function() {
    flag = false;
    stop_all();
    cartoon_image2.play({
            id:['block','cartoon'],//id div элемента и img элемента
            src:'test_img/11.jpg',//ссылка на изображение
            frames_x:8,//количество кадров на изображении по x
            frames_y:1,//количество кадров на изображении по y
            width:2400,//ширина изображения
            height:383,//высота изображения
            fps:24,//скорость показа кадров в секунду, можно писать дробные числа
            reverse:false,//если true то проигрывается с конца в начало
            playandstop:true,//если true то проиграть 1 раз и передать управление функции next
            next: function () {//выполнится только если playandstop==true
                //сюда можно писать следующий код который будет выполняться после завершения анимации
            }
        });
    flag = true;
}
var cartoon_set_1 = function() {
    if (flag == false) return;
    stop_all();
    cartoon_image2.play({
            id:['block','cartoon'],//id div элемента и img элемента
            src:'test_img/11.jpg',//ссылка на изображение
            frames_x:8,//количество кадров на изображении по x
            frames_y:1,//количество кадров на изображении по y
            width:2400,//ширина изображения
            height:383,//высота изображения
            fps:24,//скорость показа кадров в секунду, можно писать дробные числа
            reverse:true,//если true то проигрывается с конца в начало
            playandstop:true,//если true то проиграть 1 раз и передать управление функции next
            next: function () {//выполнится только если playandstop==true
                //сюда можно писать следующий код который будет выполняться после завершения анимации
            }
        });
 
}
Ответить с цитированием
  #3 (permalink)  
Старый 26.04.2013, 13:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от FirstRelict
Как сделать так, что пока не закончилась cartoon_set_2(); не запускать cartoon_set_1();
Как вариант вызывать вторую функцию из первой, передав её как параметр...

Как например это делается в том же методе
show( скорость, [вызов] )

http://jquery-docs.ru/Effects/show/
Ответить с цитированием
  #4 (permalink)  
Старый 28.04.2013, 18:43
Интересующийся
Отправить личное сообщение для FirstRelict Посмотреть профиль Найти все сообщения от FirstRelict
 
Регистрация: 25.02.2013
Сообщений: 13

Спасибо флаги самое то, осталось придумать что делать когда пользователь просто провел мышью
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как выполнить код РНР? kay-n AJAX и COMET 39 23.10.2012 14:48
Как использовать sprit'ы? Hekumok Общие вопросы Javascript 17 10.08.2012 11:24
как выполнить функцию в контексте локальных переменных vadim5june jQuery 16 07.08.2012 12:14
как перевести дату чтоб выполнить отбор в MYSql ?? Arfey Серверные языки и технологии 7 10.06.2010 09:23