Javascript 在MDTABGOUP中将选项卡从左向右更改时,ScrollTop不工作

Javascript 在MDTABGOUP中将选项卡从左向右更改时,ScrollTop不工作,javascript,html,angular,typescript,angular-material2,Javascript,Html,Angular,Typescript,Angular Material2,我编写了一个代码,保存当前选项卡主体div的滚动位置,当我们返回到该选项卡时,它将滚动位置设置为存储值。通过登录控制台,我发现存储和检索的值是正确的。但是: 当我选择当前活动选项卡右侧的选项卡时,无法设置滚动位置。但是,如果我选择了当前活动选项卡左侧的选项卡,则相同的代码会设置div的滚动位置 预期的行为是什么? 无论选项卡的位置如何,都应设置滚动位置。该代码要么适用于所有情况,要么不适用于任何情况 当前的行为是什么? 当我选择当前活动选项卡右侧的选项卡时,无法设置滚动位置。但是,如果我选择了当

我编写了一个代码,保存当前选项卡主体div的滚动位置,当我们返回到该选项卡时,它将滚动位置设置为存储值。通过登录控制台,我发现存储和检索的值是正确的。但是: 当我选择当前活动选项卡右侧的选项卡时,无法设置滚动位置。但是,如果我选择了当前活动选项卡左侧的选项卡,则相同的代码会设置div的滚动位置

预期的行为是什么?

无论选项卡的位置如何,都应设置滚动位置。该代码要么适用于所有情况,要么不适用于任何情况

当前的行为是什么?

当我选择当前活动选项卡右侧的选项卡时,无法设置滚动位置。但是,如果我选择了当前活动选项卡左侧的选项卡,则相同的代码会设置div的滚动位置

复制的步骤是什么?

转到第二个选项卡。向下滚动到某个位置。转到选项卡3。回到第二页。应保存滚动位置。重复相同的步骤,但转到表1而不是表3。滚动位置重置为零

其他信息:


从selectChange调用该函数甚至无法正确保存滚动位置。这就是为什么我把这个函数放在focusChange中。我在原始代码中有三个功能:一个用于保存滚动位置,一个用于选择选项卡切换后要显示的内容,另一个用于将滚动位置设置为保存的值。我想通过从selectChange而不是focusChange调用这三个函数来顺序调用它们。保存的滚动位置在任何情况下都是正确的。

您正试图实现的目标是什么。?创建一个工作plunker并添加一个屏幕截图@Aravind完成了编辑并编写了一份工作plnkr。
export class TabService {

  public scrollPosition: number = [0, 0, 0];
  public currentTab: number = 0;

  public scrollSave() {
    let el = document.getElementById('content');
    // console.log(this.currentTab);
    this.scrollPosition[this.currentTab] = el.scrollTop;
  }

  public setScroll() {
    let el = document.getElementById('content');  
    if (el.scrollTop !== undefined) {
      el.scrollTop = this.scrollPosition[this.currentTab];
    }
  }
}