(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完成,它应该再次启动。
感谢。
答案 0 :(得分:2)
更新:在这里:http://jsfiddle.net/ifaour/Sj5sX/
我非常喜欢jQuery Gurus的笔记和改进。
更新2 :或http://jsfiddle.net/ifaour/tzdxX/
抱歉,我的问题落后了:) 使用方法:
$(obj).hide();
而不是:
$(obj).fadeOut('slow');
如果您想直接展示
使用:
$(obj).show();
而不是:
$(obj).fadeIn('slow');
答案 1 :(得分:2)
要删除fadeOut
之后的延迟,只需将呼叫链接起来,而不是按照自己的间隔调用它们:
$(obj).fadeOut('slow').fadeIn('slow');
我对代码进行了一些简化:http://jsfiddle.net/vcWDy/2/