【发布时间】:2014-05-02 20:47:40
【问题描述】:
有没有一种方法可以使用现有的标签面板在 ExtJs 4.2 中创建垂直标签面板。通过将标签条设置为“左”,该条停靠在面板的左侧,但这不是我想要的。是否可以将选项卡垂直放置?
【问题讨论】:
标签: extjs tabs extjs4.2 tabpanel
有没有一种方法可以使用现有的标签面板在 ExtJs 4.2 中创建垂直标签面板。通过将标签条设置为“左”,该条停靠在面板的左侧,但这不是我想要的。是否可以将选项卡垂直放置?
【问题讨论】:
标签: extjs tabs extjs4.2 tabpanel
相信你可以通过在标签面板上设置tabPosition:'left'得到你想要的结果。
我创建了一个sencha fiddle 用于演示:
var panel = Ext.create('Ext.tab.Panel',{
renderTo:Ext.getBody(),
tabPosition:'left',
height:400,
width:1000,
items:[{
title:'Item 1'
},{
title:'Item 2'
}]
});
【讨论】:
大家好,我遇到了同样的问题.. 下来你有我的简单解决方案(Sass 和 extjs)
Ext.define('Navigator.view.TestView', {
requires: [
'Ext.grid.*',
'Ext.tab.*'
],
extend: 'Ext.tab.Panel',
alias: 'widget.testView',
cls:'verticaltab',
tabBar: {
width: 340,
minTabWidth: 330,
maxTabWidth: 330,
height:20,
orientation: 'vertical'
},
tabPosition: 'left',
plain: true,
items:[
{
title:'first',
html:'first'
},
{
title:'second',
html:'second'
}
]
});
//Sass 文件
.verticaltab {
.x-tab-wrap{
position: absolute;
display: block;
padding-left: 20px;
transform: rotate(90deg);
}
.x-tab-button{
position: absolute;
display: block;
padding-left: 0px;
padding-top: 2px;
}
}
【讨论】:
main是给tabpanel组件添加cls cls:'verticaltab'
然后添加tabbar属性:
tabBar: {
width: 340,
minTabWidth: 330,
maxTabWidth: 330,
height:20,
orientation: 'vertical'
},
tabPosition: 'left',
然后添加
.verticaltab {
.x-tab-wrap{
position: absolute;
display: block;
padding-left: 20px;
transform: rotate(90deg);
}
.x-tab-button{
position: absolute;
display: block;
padding-left: 0px;
padding-top: 2px;
}
}
Sass 文件可以在主题文件夹结构中.. 我认为它不适用于 Safari,但您可以升级 Sass 代码以使其正常工作。
如果你觉得难,我会准备 Sencha Fiddle :)
【讨论】:
只需将这些粘贴到 tabPanel 上
tabPosition: 'left',
tabRotation: 0
示例: https://examples.sencha.com/extjs/7.0.0/examples/kitchensink/#advanced-tabs
来源:
https://docs.sencha.com/extjs/7.3.1/classic/Ext.tab.Panel.html#cfg-tabPosition https://docs.sencha.com/extjs/7.3.1/classic/Ext.tab.Panel.html#cfg-tabRotation
【讨论】: