Как получить окно innerHeight et c. свойства каждый раз, когда он меняется, чтобы реализовать бесконечную прокрутку - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь создать функцию бесконечной прокрутки для окна сообщения в проекте Angular7.

Когда он запускается, в почтовом контейнере находится 10 начальных элементов. После того, как пользователь прокручивает страницу вниз, он вызывает метод loadMore () и получает еще 10 сообщений.

Однако в следующий раз, когда пользователь прокручивает вниз обратный вызов, запускается на полпути вниз по странице, а в следующий раз, когда он делает это на четверть вниз. Через некоторое время, когда прокрутка началась, она почти мгновенная и продолжает получать данные через функцию обратного вызова.

Я считаю, что значения в функции обратного вызова не обновляются, но я не могу понять, почему. Кто-нибудь может мне помочь с этим?

// Настройка прослушивателя событий в onInit

 ngOnInit(): void {
    window.addEventListener('scroll', this.scroll, true);
  }  

// Функция обратного вызова прокрутки

scroll = (event:any): void=> {
  if((window.innerHeight + window.scrollY) >= document.body.offsetHeight){
    this.loadMore();
  }
  };

// функция loadMore ()

  ngAfterViewInit(){
    this.loadMore();
  }  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...