Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2011, 21:28
Новичок на форуме
Отправить личное сообщение для titansword Посмотреть профиль Найти все сообщения от titansword
 
Регистрация: 05.03.2011
Сообщений: 8

Предотвращение многократного воспроизведения анимации
Я догадываюсь, что эта проблема неоднократно пережевывалась, но к сожалению, я не нашел решения для своего случая.
$(".relat").hover(

  function () {

	  $(this).find('.abs').slideDown("slow");
  
  }, 
  function () {
  
	  $(this).find('.abs').slideUp("slow"  );
	  
  }
);

При многократном наведении курсора на объект, образуется очередь из анимаций, которые проигрываются даже если курсор уже давно не на объекте.
Пробовал использовать .stop(true), но если прервать появление объекта на пол пути, то при следующем вызове он тоже будет появляться только на половину.
.stop(true,true) это практически решение проблемы, но хотелось бы что бы не просто применялся конечный эффект проигрываемой анимации, а что бы анимация с честно проигрывалась до конца.
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2011, 21:37
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Попробуйте так:
$(".relat").hover(
 
  function () {
 
      $(this).find('.abs').filter(':hidden').slideDown("slow");
   
  },
  function () {
   
      $(this).find('.abs').not(':hidden').slideUp("slow"  );
       
  }
);
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2011, 21:42
Новичок на форуме
Отправить личное сообщение для titansword Посмотреть профиль Найти все сообщения от titansword
 
Регистрация: 05.03.2011
Сообщений: 8

walik,
Да, это решило проблему. Премного благодарен.
Хотя и у этого решения есть минус. Если во врем работы slideUp навести курсор на объект, то событие hover уже работать не будет. Нужно будет снова убрать и навести курсор на объект, что бы событие сработало.

Последний раз редактировалось titansword, 22.05.2011 в 17:45.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение смещения в момент анимации. 0931454574 jQuery 6 13.05.2011 09:55
Порядок выполнения анимации Tohin jQuery 3 03.07.2009 11:52
Завершение процесса воспроизведения видео при закрытии окна IE skif Общие вопросы Javascript 0 11.03.2009 08:11