2012-01-10 3 views
2

На моем веб-сайте есть значки, которые светятся на мышь, но я хочу, чтобы он светился случайным образом, когда никто не парит.Пауза Эффект jQuery во время исполнения

Прямо сейчас у меня есть правильный код, который сделает его случайным свечением и свечением при наведении, но как сделать случайное свечение прекращением и возобновлением после того, как человек навел курсор на значки.

спасибо.

ответ

1

Поскольку вы не предоставили много информации, это то, что я думаю, что делать:

  1. Создать функцию, которая светится значок
  2. Создать еще одну функцию, которая вызывает функцию свечения на случайных иконок
  3. Создать таймер (интервал) для вызова функции randomGlow с заданным интервалом
  4. Прикрепите событие mouseenter для значка таким образом, чтобы при его запуске он очищал таймер и вызывал свечение только на этом значке. И когда мышь, он запускает новый таймер. (таймер является глобальным)
1

Вы можете использовать .stop(), чтобы прекратить действие существующих эффектов.

Однако нет (AFAIK) любым способом до эти эффекты после того, как дополнительные эффекты, начатые вашим зависанием, закончены.

Вам придется перезапустить «случайный» светящийся во втором обратном вызове .hover().

EDIT это может быть возможно, но это непроверенные:

  1. вызов .queue() получить текущую очередь анимации, и скопировать результаты
  2. вызов .stop(), чтобы удалить все эти
  3. сделайте свою новую анимацию
  4. в функции «out» .hover(), заново поставить поставленные в очередь предметы из # 1 выше
+0

Спасибо Alnitak, ваше предложение имеет смысл. Позвольте мне попробовать. –

+0

@JamesWong см. Http://jsfiddle.net/alnitak/mS99A/ - это _mostly_ работает. Однако невозможно восстановить анимацию «inprogress», и если после остановки всей анимации больше ничего не осталось. Вам нужно будет проверить полученную очередь и перезапустить случайную анимацию, если ничего больше не останется. – Alnitak

0

Вы можете проверить, чтобы увидеть, если они значок горит, прежде чем свечение его:

$('.icon').hover(function() { 
    $(this).stop(true, true); 
    $(this).toggleClass('glow', true); 
}, function() { 
    $(this).stop(true, true); 
    $(this).toggleClass('glow', false); 
}); 

function randomglow(icon) { 
    if (!$(icon).hasClass('glow')) { 
     //your glow code here 
    } 
} 
Смежные вопросы