2010-11-23 7 views
3

в моем GWT, у меня есть кнопка, огонь, как показано ниже, чтобы создать новый виджетgwt использование эффекта jquery возможно?

@UiHandler("buttonfire") 
    void addNewWidget(ClickEvent event) { 


    htmlPanelHolder.add(new MyCustomWidget(),"placeholder"); 

} 

как использовать JQuery, так что, когда MyCustomWidget() показать на экране она использует JQuery «FadeIn» эффект

Я уже пробовал положить jsni для вызова jquery внутри нового MyCustomWidget() onload(), но не работает. может направить меня на это?

+1

Вы можете попробовать что-то вроде т его: 1) Создать виджет 2) Установить свойство экрана css для отображения «display: none» 3) Добавить виджет в htmlPanelHolder 4) Вызвать метод JSNI: public static native void fadeInWidget()/* - { $ ("mywidget: hidden") .fadeIn ("медленные"); } - * /; –

+0

@ Xo4yHaMope. для шага 4, должен ли я вызвать fadeInWidget() в конструкторе виджета 1-го шага после initwidget()? или я должен вызвать fadeInWidget() внутри onload()? , также, $ ("mywidget: hidden"), это id =? для htmlPanelHolder? – cometta

+0

Вы должны вызвать fadeInWidget() в самом конце, поэтому вызов его после initwidget() должен работать. И извините, что в коде jQuery есть ошибка: $ ('# myDivId'). FadeIn ("slow"); или $ ('. myCssClass'). fadeIn ("slow"); –

ответ

11

Также можно создать эффект плавного увеличения громкости без использования JQuery. Если вы хотите сделать это, просто написать класс анимации, как это:

public class FadeInAnimation extends Animation { 
    private final UIObject uiObject; 

    FadeInAnimation(final UIObject uiObject) { 
     this.uiObject = uiObject; 
    } 

    @Override 
    protected void onUpdate(final double progress) { 
     uiObject.getElement().getStyle().setOpacity(progress); 
    } 
} 

Затем вы можете использовать его на любом виджете:

new FadeInAnimation(myWidget).run(5000); 

Примечание: Вызов getStyle().setOpacity(..) даже ухаживает частный случай IE6/7, где он устанавливает style.filter = 'alpha(opacity=' + (value * 100) + ')';

+0

Спасибо за подсказку! Просто использовал его на моем веб-сайте. :) –

Смежные вопросы