2013-10-26 4 views
0

Я хотел бы пульсировать div (стрелка вниз) на pageload. Когда пользователь нажимает стрелку вниз, другие div slidetoggles и анимация импульса останавливаются. Когда стрелка вниз будет нажата снова, другой div сдвинется вверх, и стрелка вниз начнет пульсировать снова.Как начать анимацию импульса после ее остановки

Вот подобная идея, но пульс замирает:

jQuery(".pulse").effect("pulsate", { times:1000 }, 2000).click(function(){ 
    jQuery(this).stop(true, true); 
}); 

ответ

0

Как я понимаю, это метод .effect() не продолжает анимацию на неопределенное время, так что вы должны были бы продолжать называть его каждый раз, когда он заканчивает , возможно, путем запуска анимации изнутри функции, которая также предоставляется как полный обратный вызов.

Что касается его остановки, пока отображается другой DIV и его перезапуск после этого, вы можете использовать флаг, чтобы решить, какой способ переключения, возможно, что-то вроде этого:

function keepPulsing() { 
    $pulse.effect("pulsate", 500, keepPulsing); 
} 
var pulsing = true, 
    $pulse = jQuery(".pulse").click(function(){ 
     if (pulsing) { 
      jQuery(".other").slideDown(); 
      jQuery(this).stop(true, true).css("opacity",1); 
     } else { 
      jQuery(".other").slideUp(); 
      keepPulsing(); 
     } 
     pulsing = !pulsing;   
    }); 
keepPulsing(); 

Демо: http://jsfiddle.net/87hy2/

+0

' pulsing =! pulsing; 'Что делает эта строка кода> – danelig

+0

'! '- это логический оператор NOT, который возвращает' false', если его единственный операнд может быть преобразован в 'true' и в противном случае возвращает' true'. Поэтому, если 'pulsing' является' true', тогда '! Pulsing' является' false' и наоборот; линия 'pulsing =! pulsing' в основном устанавливает« пульсирующий »в противоположность тому, что было. (Если вы собираетесь кодировать в JS, вам действительно нужно ознакомиться с [всеми операторами] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators) - только операторы, которые я не использую на регулярной основе, являются поразрядными.) – nnnnnn