首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改GWT SubMenu弹出窗口位置

更改GWT SubMenu弹出窗口位置
EN

Stack Overflow用户
提问于 2012-03-28 20:04:43
回答 4查看 1.9K关注 0票数 1

在菜单栏中,子菜单通常显示在右侧。我想换到左手边。有没有人可以让我知道,我该怎么做?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-29 14:38:40

子菜单的弹出位置由CSS元素根据菜单项的位置在呈现时定义。

在主菜单上通过Firebug查看它产生的:

代码语言:javascript
复制
element.style {
    clip: rect(auto, auto, auto, auto);
    left: 337px; // Change this to left:35px;
    overflow: visible;
    position: absolute;
    top: 319px;
    visibility: visible;
}

// This is main CSS for popup
.gwt-MenuBarPopup{
}

因此,可以通过在代码中使用setStyleName("css goes here")来尝试一下

票数 1
EN

Stack Overflow用户

发布于 2012-03-28 20:19:28

我再次建议您覆盖默认样式GWT:)当我必须更改GWT元素的一些标准视图时,我在项目中使用了此方法。

票数 0
EN

Stack Overflow用户

发布于 2014-09-25 01:11:57

我也可以通过改变css来实现一个解决方案。也许这不是最优雅的方式,但它是有效的。使用GwtQuery的closest()方法的一些帮助,下面是一个简短的示例。

代码语言:javascript
复制
        menuBar.addAttachHandler(new AttachEvent.Handler() {            
        @Override
        public void onAttachOrDetach(AttachEvent event) {
            if(event.isAttached()){
                Scheduler.get().scheduleDeferred(new ScheduledCommand() {                       
                    @Override
                    public void execute() {
                        Element e = $(menuBar).closest(".gwt-MenuBarPopup").get(0);
                        e.getStyle().setLeft(parentMenuBar.getAbsoluteLeft()-menuBar.getOffsetWidth() , Unit.PX);
                    }
                });                 
            }
        }
    });

因此,当附加了子菜单时,您想要更改css。我使用了一个延迟命令,以便在GWT的默认MenuBar实现设置它之后更改css。这一行,"$(menuBar).closest(".gwt-MenuBarPopup").get(0);“将在DOM树中搜索,直到找到您想要更改的类为.gwt-MenuBarPopup的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9907108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档