我正在使用 Ext JS v4.2.1 在 Screen 中绘制一个选项卡面板,并在每个选项卡中显示一些内容——这些内容可能会变得非常大。为此,我使用这样的东西:
var createTab = function (tabName, panelName){
return {xtype: 'container',
title: tabName,
autoScroll: true,
layout: {
type: 'vbox',
align: 'stretch'
},
items: [
{
title: panelName,
items: [Ext.create( 'MyLongView' )]
}
]};
};
var tabPanel = new Ext.tab.Panel({
renderTo: 'testDiv',
flex: 1,
border: false,
itemId: 'tabPanel',
items: [createTab('First Tab', 'First Panel'),
createTab('Second Tab', 'Second Panel')]
});
当我在 Internet Explorer 中尝试该代码时,每个 Tab Change 都会将滚动位置重置为 top,这是一个在 Chrome 或 Firefox 中都不会发生的错误。要重现它,请在 IE 窗口中执行以下步骤:
- 创建一个选项卡面板,其中包含选项卡。
- 在第一个选项卡中,向下滚动到底部。
- 然后,选择第二个选项卡。
- 最后,返回第一个选项卡。您会看到您留在底部的滚动条现在位于顶部。
预期的行为是滚动停留在您离开它的位置。通过 Sencha 论坛搜索,我发现他们建议使用,hideMode: 'offsets'
但这对我不起作用。有任何想法吗?
PS:我创建了一个 Fiddle 来显示错误。请只在 IE 上尝试(我不知道为什么它在 Chrome/Firefox 上不起作用)。