(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 上获取
它是一个循环脚本,一旦淡入/淡出完成,就应该重新开始。
谢谢。
最佳答案
要消除 fadeOut
后的延迟,只需链接调用,而不是按自己的时间间隔调用它们:
$(obj).fadeOut('slow').fadeIn('slow');
我对代码做了一些简化:http://jsfiddle.net/vcWDy/2/
关于javascript - 消除隐藏延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480490/