Приостановить эффект jQuery во время выполнения - PullRequest
2 голосов
/ 10 января 2012

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

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

Спасибо.

Ответы [ 3 ]

1 голос
/ 10 января 2012

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

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

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

Однако (AFAIK) не существует способа возобновить эти эффекты после завершения дополнительных эффектов, запущенных при наведении.

Вы должны были бы перезапустить ваше "случайное" свечение во втором .hover() обратном вызове.

РЕДАКТИРОВАТЬ это возможно возможно, но это не проверено:

  1. вызовите .queue(), чтобы получить текущую очередь анимации и скопировать результаты
  2. позвоните .stop(), чтобы удалить все эти
  3. сделать ваши новые анимации
  4. in .hover() 'out', восстановите поставленные в очередь элементы с # 1 выше
0 голосов
/ 10 января 2012

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

$('.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
    }
}
...