Почему window.pageYOffset всегда 0?и как я могу получить значение, чтобы проверить, прокручивается ли страница вниз или вверх? - PullRequest
0 голосов
/ 28 июня 2019

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

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

Я думал, что смогу получить значение window.PageYOffset, когда событие прокрутки срабатывает, но значение window.PageYOffset всегда равно 0. Я думал, что это значение будет относиться кколичество пикселей, по которым документ прокручивается по оси Y, но я явно что-то неправильно понимаю.

в моем hide-on-scroll компоненте у меня есть

private eventOptions: boolean|{capture?: boolean, passive?: boolean};
ngAfterViewInit(){

    //removed where I set eventOptions

  this.ngZone.runOutsideAngular(() => {
      window.addEventListener('scroll', this.scroll, <any>this.eventOptions);
  });

  }
  scroll = (event: any): void => {
    var a = window.pageYOffset; //value is always 0
  };

, который срабатывает при каждом движении прокрутки

мой HTML

<ion-header>
  <hide-on-scroll>
    <h1>Test</h1>
  </hide-on-scroll>
</ion-header>

<ion-content class="page-background">
  <div *ngIf="margins">
    <div *ngFor="let val of margins.ByZone">
      <div style="height:500px; margin-top:20px">
        <h1>dummy content</h1>
      </div>
    </div>
  </div>
</ion-content>

Два вопроса

Почему window.pageYOffset всегда 0?

В моем событии прокрутки как я могу получить значение, чтобы проверить, прокручивается ли страница вниз или вверх?

Обновление

ionic is autoгенерирует теги <html> и <body> и устанавливает в них значение height:100%.Джоэл Джозеф упомянул в комментариях, что это проблема при попытке получить window.PageYOffset.Есть ли обходной путь для этого?

...