【问题标题】:EffectQueue and chaining effects in IceFaces 1.8IceFaces 1.8 中的 EffectQueue 和链接效果
【发布时间】:2012-08-15 14:33:41
【问题描述】:

我目前正在使用 IceFaces 1.8,并且一直在尝试找到一种简单的方法来链接 UI 组件上的效果。例如,我在页面右上角有一个“显示帮助”链接。单击时,帮助文本将出现在用户的某些控件下方。我希望通过向下滑动然后突出显示来显示此文本。

我的 bean 上有一个基本的 isRenderHelp() 方法,它返回 true 或 false,并使用 <ice:effect> 标签上的 fire 属性来渲染效果,所以它看起来像这样:

<ice:effect effectType="slidedown" fire="#{myBean.renderHelp}">

<ice:effect effectType="slideup" fire="#{!myBean.renderHelp}">

当帮助链接切换 bean 中的 renderHelp 标志时,这会导致帮助部分滑入和滑出。有一个小例外,即在第一次点击链接之前,renderHelp 返回 null 以防止在第一个页面渲染时触发上滑动画。

现在,我注意到查看 1.8 的展示代码,有一个扩展 Effect 的 EffectQueue 类。这允许我将多个效果添加到我的 bean 中的队列,并从 getEffect 方法返回队列,然后我可以将其分配给 panelGroup effect 属性。但是,尽管设置了优先级,但它不会执行队列中的事件。我确定我没有正确使用它,我想知道它应该如何使用。

通常我会为这种类型的事情使用 jQuery,但 UI 使用许多部分提交。我们的页面是通过 Liferay portlet 显示的,因此在任何 partialSubmit 上都会重新呈现视图,从而撤消 jQuery 对 DOM 的任何修改。

那么有什么简单的方法可以在 IceFaces 1.8 中链接效果吗?有什么建议吗?

【问题讨论】:

    标签: icefaces icefaces-1.8


    【解决方案1】:

    这是我如何实现 effectQueue 以显示和淡化文本。

    private EffectQueue effectQueue;
    public Effect getSaveSettingsEffect() {
        return effectQueue;
    }
    public void fireEffect(ActionListener e) {
        if(effectQueue == null) {
            effectQueue = new EffectQueue("apperAndFade");
            Appear appear = new Appear();
            appear.setDuration(2);
            effectQueue.add(appear);
            Fade fade = new Fade();
            fade.setDuration(3);
            effectQueue.add(fade);
            effectQueue.setTransitory(true);
        }
        effectQueue.setFired(false);
    }
    

    小脸:

    <ice:commandButton value="fireEffect" action="#{bean.fireEffect}"/>
    <ice:outputText value="text" style="display: none;" effect="#{bean.effectQueue}"/>
    

    【讨论】:

    • 谢谢,我会试一试。通过使用绑定到ApplyEffectTag 的多个&lt;ice:effect /&gt; 标签并在标签上设置sequencesequenceId 属性,我能够链接一些。然后在我的 bean 中,当单击链接时,我只需翻转 fired 标志。然而,我们的表单使用了大量的部分提交,所以每次刷新后效果都会触发。理想情况下,一旦显示该部分,它需要保持显示状态,直到用户再次将其关闭。我会试试这个并回帖。
    • 将此标记为已接受的答案,因为它确实有效并回答了我的问题。我遇到的问题是 IceFaces 没有在部分提交之间保留对象的状态。在 Miha 的示例中,假设按钮切换 outputText。单击按钮将其显示,单击按钮将其隐藏。如果显示文本,则另一个页面控件进行部分提交,文本返回隐藏;效果对 DOM 所做的修改不会被保留。我认为这是 transitory 属性的目的,但它似乎没有效果。谢谢!
    猜你喜欢
    • 2011-07-03
    • 2013-04-16
    • 2013-10-24
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多