我有水平菜单.它看起来像那样
<ul>
<li>Sample 1</li>
<li>Sample 2</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
有没有办法在页面加载时逐个淡化它们?
gio*_*_13 10
function fadeIn(i, elements, duration, callback){
if(i >= elements.length)
$.isFunction(callback) && callback();
else
elements.eq(i).fadeIn(duration, function(){
fadeIn(i+1, elements, duration, callback);
});
}
fadeIn(0, $('ul li'), 100, function(){console.log("animation finished!");});
Run Code Online (Sandbox Code Playgroud)
工作演示:
$.fn.fadeInEach = function(duration,callback){
function fadeIn(i,elements,duration,callback){
if(i >= elements.length)
typeof callback == 'function' && callback();
else
elements.eq(i).fadeIn(duration, function(){
fadeIn(i+1, elements, duration, callback);
});
}
fadeIn(0, this, duration, callback);
return this;
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以将此插件完全用作本机fadeIn方法:
$('li').fadeInEach(100,function(){alert('animation has finished');});
// if you want to animate all of the elements in the same time use fadeIn :
// $('li').fadeIn(100,function(){alert('animation has finished');});
Run Code Online (Sandbox Code Playgroud)
这种方法的好处在于它适用于任何元素(不仅仅是li).
这是这个小插件的演示:
| 归档时间: |
|
| 查看次数: |
6409 次 |
| 最近记录: |