我有这个jsfiddle,右上角有三个按钮。
一直向右的两个按钮“底图”和“图例”的内容按预期向左打开,因此它们不会超出浏览器窗口。左侧按钮的内容“地图叠加层”会向右打开,因为它有这样做的空间。
是否可以更改这些 DropDownButtons 的内容,以便默认情况下它们都将自己定位为内容的右侧与按钮的右侧对齐?
IE,我希望左按钮(“地图叠加”)的打开内容与其他按钮的打开内容相同。
我有这个jsfiddle,右上角有三个按钮。
一直向右的两个按钮“底图”和“图例”的内容按预期向左打开,因此它们不会超出浏览器窗口。左侧按钮的内容“地图叠加层”会向右打开,因为它有这样做的空间。
是否可以更改这些 DropDownButtons 的内容,以便默认情况下它们都将自己定位为内容的右侧与按钮的右侧对齐?
IE,我希望左按钮(“地图叠加”)的打开内容与其他按钮的打开内容相同。
我已经通过为DropDownButtondojo.connect
的事件添加一个来解决这个问题。onMouseDown
我根据 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";
});