我想为一对小部件一个接一个地添加渐入淡出动画。我看了文档,但是它只能第一次淡入。
$(myWidget1).fadeIn(new Function(){
public boolean f(Event e){
//tried to add the second fade-in for myWidget2, but no result
return true;
}
});
我如何以这种方式实现一个接一个的淡入,或者有其他方法可以做到吗?
谢谢!
试试这个,使用jQuery:
$(document).ready(function(){
var widgets = $('.widget');
var fader = function(widget_n){
if (widget_n < widgets.length) {
$(widgets.get(widget_n)).fadeIn('slow', function(){
fader(widget_n +1);
});
}
};
if (widgets.length > 0) {
fader(0);
}
});
查看我的示例:http://gwtquery-plugins.googlecode.com/svn/branches/droppable_1_0/demo/DraughtsSample/DraughtsSample.html
我使用fadeIn GQuery方法来淡入每一块板。您可以在这里找到代码:http://code.google.com/p/gwtquery-plugins/source/browse/trunk/droppable/sample/src/main/java/gwtquery/plugins/droppable/client/draughtssample/CheckerBoard.java#116
为什么不使用。each()函数来遍历你的"widgets"呢
var map = {
'mywidget1': '#mywidget1',
'mywidget2': '#mywidget2'
};
$.each(map, function(key, value) {
$(value).fadeIn(...);
});
或者如果它们都有一些共同之处(例如,标签组合的类别等),这将更容易。
参见.each() jQuery API
您正在重写一个不正确的方法:f(Event)
用于事件,更改为f()
:
$(myWidget1).fadeIn(new Function(){
public void f() {
$(myOtherWidget).fadeIn();
}
});