scrollIntoView()不适用于应用程序选择器

时间:2018-04-26 02:03:09

标签: javascript angular typescript

有人知道滚动到锚点的正确实现。这种方法不起作用: Angular2 scroll to element that has *ngIf

以下是引用其他组件的模板:

let elm = document.querySelector("#id1");
if (elm)
  elm.scrollIntoView();

点击按钮,我想滚动到相应的部分:

self.data

执行了scrollIntoView(),但它滚动到了错误的位置(比如该部分的中间部分),并且根本不适用于app-app3。

1 个答案:

答案 0 :(得分:0)

我这样解决了: 1.从应用程序选择器组件中删除“id3”:

   change: <app-app3 id="id3" *ngIf="test"></app-app3>
   to:     <app-app3 *ngIf="test"></app-app3>
  1. 在组件顶部放置新的div:
  2.   

    &LT; div id =“id3”&gt; &LT; / div&gt;

    1. 变化:
    2. let elm = document.querySelector("#id3");
      if (elm)
        elm.scrollIntoView();
      

      到:

      let elm = document.getElementById("id3");
      elm.scrollIntoView({behavior: "instant", block: "center", inline: "center"});