javascript - 定位一个dojo dijit.form.DropDownButton的内容?

标签 javascript html css dojo

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

最右边的两个按钮“ basemap ”和“图例”的内容按预期向左打开,因此它们不会超出浏览器窗口。左侧按钮的内容“ map 叠加层”向右打开,因为它有空间可以这样做。

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

即,我希望左侧按钮(“ map 叠加层”)的打开内容以与其他按钮的打开内容相同的方式定位。

最佳答案

Fixed jsfiddle with desired functionality.

我已通过为 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";
});

关于javascript - 定位一个dojo dijit.form.DropDownButton的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11689443/

相关文章:

css - 如何在 Gtk3 可选标签中设置光标颜色?

html - 文本转换是否为 : Capitalize work for <option> elements,?如果是,在哪些浏览器中?

javascript - 如何阻止网站在 iframe 中加载?

javascript - React Transition Group 向上滑动元素

javascript - 使用 CSS 对表格行中的每个图像应用相同的纵横比

html - 跨浏览器字体问题

javascript - 找到包含所有 <div> 的边界框

javascript - 为 Coin 货币市场实现 highcharts

javascript - 错误 : Loading chunk 0 failed. - webpack 尝试加载 0.js

javascript - 向按钮添加 onclick 事件会导致页面错误