Убрать задержку при скрытии - PullRequest
0 голосов
/ 19 декабря 2010
(function($)
{
 $.fn.blink = function(options)
 {
  var defaults = { delay:5000 };
  var options = $.extend(defaults, options);

  return this.each(function()
  {
   var obj = $(this).find("img");
   setInterval(function()
   {
    if($(obj).css("display") == "block")
    {
     $(obj).fadeOut('slow');
    }
    else
    {
     $(obj).fadeIn('slow');
    }
   }, options.delay);
  });
 }
}(jQuery))

$('.blink').blink();

HTML:

<a href="#" class="blink">
    <img src="image.png" alt="some image" />
</a>

Этот скрипт удаляет изображение с эффектом перехода, а затем показывает его обратно. Итак, вот два шага: 1) скрыть, 2) показать.

Задержка 5 секунд на каждом шаге, должна быть только тогда, когда изображение видно.

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

Код доступен на JsFiddle

Это скрипт круга, после того как fadeIn / Out завершен, его нужно запустить снова.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 декабря 2010

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

$(obj).fadeOut('slow').fadeIn('slow');

Я сделал несколько упрощений в коде: http://jsfiddle.net/vcWDy/2/

2 голосов
/ 19 декабря 2010

ОБНОВЛЕНИЕ : здесь вы идете: http://jsfiddle.net/ifaour/Sj5sX/

У меня все уши для JQuery Gurus для заметок и улучшений ..

ОБНОВЛЕНИЕ 2 : или http://jsfiddle.net/ifaour/tzdxX/


Извините, я получил ваш вопрос задом наперед :) Применение:

$(obj).hide();

вместо:

$(obj).fadeOut('slow');

Если вы хотите показать это напрямую

использование:

$(obj).show();

вместо:

$(obj).fadeIn('slow');
...