GwtQuery - исчезают один за другим
Я хочу добавить постепенную анимацию для пары виджетов один за другим. Я просмотрел документацию, но он только начинает появляться.
$(myWidget1).fadeIn(new Function(){
public boolean f(Event e){
//tried to add the second fade-in for myWidget2, but no result
return true;
}
});
Как мне добиться постепенного появления одного за другим таким образом или есть другой способ сделать это?
Спасибо!
4 ответа
Попробуйте это, используя 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() для циклического прохождения ваших "виджетов".
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();
}
});