繁体   English   中英

放置dojo dijit.form.DropDownButton的内容?

[英]Positioning the contents of a dojo dijit.form.DropDownButton?

我有这个jsfiddle ,在右上角有三个按钮。

一直向右的两个按钮的内容(“底图”和“图例”)按预期向左打开,因此它们不会超出浏览器窗口。 左按钮的内容“ Map Overlays”向右打开,因为它有足够的空间这样做。

是否可以更改这些DropDownButtons的内容,以便默认情况下它们都将自己定位为使内容的右侧与按钮的右侧对齐?

IE,我希望左按钮的打开内容(“地图叠加层”)的位置与其他按钮的打开内容相同。

修复了具有所需功能的jsfiddle。

我通过为DropDownButton的onMouseDown事件添加一个dojo.connect来解决此问题。 我从DropDownButton的x位置和宽度计算ContentPane的新x位置。 然后,我找到ContentPane的DOM节点的父节点节点,并将其left样式参数设置为该新的x位置。

dojo.connect(dijit.byId("mapOverlayDropdown"), 'onMouseDown', function() {
    console.log("shown");

    var button = dijit.byId("mapOverlayDropdown").domNode;
    var gallery = dijit.byId("mapOverlayGallery").domNode.parentNode;

    var buttonPos = dojo.position(button, true);
    var galleryPos = dojo.position(gallery, true);

    var newX = buttonPos.x + buttonPos.w - galleryPos.w;

    gallery.style.left = newX.toString() + "px";
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM