javascript - 是否可以将 dijit.layout.TabContainer 选项卡向右对齐?

标签 javascript dojo

我希望选项卡向右浮动,而不是出现在内容 Pane 的右侧。这可能吗?

最佳答案

tabPosition 属性没有这样的选项(只有 topbottomleft-hright-h),但您只需要几行 JavaScript 即可实现此目的: enter image description here

查看 jsFiddle 上的实际代码:http://jsfiddle.net/phusick/aGCFs/

我的第一个想法是重写 dijit CSS 以将选项卡与 text-align:right 对齐,但这行不通,因为选项卡的 domNode 是 div 的子级> 其中宽度超过50000px,因此选项卡将不可见。要解决此问题,您应该在每次调整选项卡容器大小时设置 left 属性(通过 dojo.connect):

var alignTabs = function(tabContainer) {
    var tabListNode = tabContainer.tablist.domNode;
    var tabStripNode = dojo.query("div.nowrapTabStrip", tabListNode)[0];   

    var tabListCoords = dojo.coords(tabListNode);
    var tabStripCoords = dojo.coords(tabStripNode);

    var tabStripLeft = (-tabStripCoords.w + tabListCoords.w) + "px";

    dojo.style(tabStripNode, "textAlign", "right");
    dojo.style(tabStripNode, "left", tabStripLeft);
}

var tabContainer1 = dijit.byId("tabContainer1");
alignTabs(tabContainer1);

dojo.connect(tabContainer1, "resize", function() {
    alignTabs(tabContainer1);            
});

它肯定需要一些微调,但你有一个想法。由于这只是一个临时代码,我建议子类化 TabContainerTabController 类或扩展(通过 dojo.extend || dojo .mixin)它们来烘焙该功能。

另外,请注意,对于并非所有选项卡都适合单行的情况,我没有测试这是否会破坏 ScrollingTabController 的功能。

关于javascript - 是否可以将 dijit.layout.TabContainer 选项卡向右对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433707/

相关文章:

Javascript - onscroll 顺利移动到下一个 anchor ?如何?

javascript - 动态将表数据转换为树数据JSON格式(父,子)d3.js?

javascript - dojofilteringSelect - 仅允许输入列表项

unit-testing - Dojo DOH 怎么了?

javascript - 动态高度和 webkit-transition

javascript - DojoToolkit widget.placeAt() 方法引用

javascript - dojo.query() 的顺序是什么?

javascript - 类似于 Revealing Module Pattern 结构的 TypeScript 代码

javascript - 通过 JavaScript 更改 CSS 属性

javascript - 如何检测客户端是否滚动到网页的顶部或底部?