web前端

定位到指定元素的位置

2022-07-19  本文已影响0人  姜治宇

1、scrollIntoView函数

利用dom的scrollIntoView()函数可以滚动到指定位置。

let dom = document.querySelector('.change-page');
if (dom) {
     dom.scrollIntoView(false);
}

2、scrollTop属性

利用dom的scrollTop属性,可以让滚动条滚到指定的位置,注意值要给数字,默认单位是px。

let dom = document.querySelector('.change-page');
dom.scrollTop = 800;

我们可以在页面上监听scroll事件,将滚动位置本地缓存下来,这样下次进来就可以滚动到上次浏览的位置了。

@ViewChild("pageWrapper") pagewrapper: any;
public scrollFunc: any;
...
ngDoCheck() {
    if (localStorage.getItem('scroll-location') && this.pagewrapper) {
      this.pagewrapper.nativeElement.scrollTop = Number(localStorage.getItem('scroll-location'));

    }
}
ngAfterViewInit() {
    //回调函数
    this.scrollFunc = () => {
      
      localStorage.setItem('scroll-location', "" + this.pagewrapper.nativeElement.scrollTop);
      
    }
    //滚动事件监听
    this.pagewrapper.nativeElement.addEventListener('scroll', this.scrollFunc);

}
ngOnDestroy() {
        
   this.pagewrapper.nativeElement.removeEventListener('scroll', this.scrollFunc);
}
上一篇下一篇

猜你喜欢

热点阅读