滚动到DIV元素的中心-Angular 7

时间:2019-05-07 14:33:33

标签: javascript html css angular

当某个函数被触发时,我想滚动到元素的Y和X中心。 我的HTML看起来像这样(我想滚动到#viewport的中间):

 </div>
      <div #viewport class="document-view-port">
          <div #viewBox></div>
 </div>

在我的TS内,我正在导入这样的元素(在这里我尝试找到y中心):

  @ViewChild('viewBox') viewBox: ElementRef;
  @ViewChild('viewport') viewport: ElementRef; 

我尝试提取此中心点以滚动的最后一种方法是:

  zoomIn() {
    const elementRect = this.viewport.nativeElement.getBoundingClientRect();
    const absoluteElementTop = elementRect.top + window.pageYOffset;
    const middle = absoluteElementTop - (elementRect.height / 2);  
    this.viewport.nativeElement.scrollTo(0, middle)
  }

我只是做不到,任何帮助将不胜感激

[编辑]

scrollIntoView()方法在我的代码中没有执行任何操作。我想找到这些坐标并滚动而不使用任何预定义的函数

1 个答案:

答案 0 :(得分:0)

您应该使用// setting font for more exaggerated difference * { font-family: Times, "Times New Roman", serif; } // why doesn't this or anything else work? input { &:-webkit-auto-fill { &, &:hover, &:focus { font-family: Times, "Times New Roman", serif !important; } } } 来实现滚动:

window.scrollTo(x, y)