Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么window.pageYOffset总是0?我怎样才能得到一个值来检查页面是否被向下或向上滚动?_Angular_Ionic Framework_Ionic3_Angular5 - Fatal编程技术网

Angular 为什么window.pageYOffset总是0?我怎样才能得到一个值来检查页面是否被向下或向上滚动?

Angular 为什么window.pageYOffset总是0?我怎样才能得到一个值来检查页面是否被向下或向上滚动?,angular,ionic-framework,ionic3,angular5,Angular,Ionic Framework,Ionic3,Angular5,我试图在我的ionic应用程序向下滚动时隐藏一个元素,并在向上滚动时显示 我是通过一个组件来实现这一点的,所以我可以在我想要这个功能的任何元素周围放置标签 我原以为可以在启动滚动事件时获得window.PageYOffset的值,但window.PageYOffset的值始终为0。我以为这个值与文档在Y轴上滚动的像素数有关,但我显然误解了什么 在我的hide on scrollcomponenet中,我有 private eventOptions: boolean|{capture?: bool

我试图在我的ionic应用程序向下滚动时隐藏一个元素,并在向上滚动时显示

我是通过一个组件来实现这一点的,所以我可以在我想要这个功能的任何元素周围放置标签

我原以为可以在启动滚动事件时获得
window.PageYOffset
的值,但
window.PageYOffset
的值始终为0。我以为这个值与文档在Y轴上滚动的像素数有关,但我显然误解了什么

在我的
hide on scroll
componenet中,我有

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
  };
private eventOptions:boolean |{capture?:boolean,被动?:boolean};
ngAfterViewInit(){
//删除了我设置eventOptions的位置
此.ngZone.runOutsideAngular(()=>{
window.addEventListener('scroll',this.scroll,this.eventOptions);
});
}
滚动=(事件:任意):无效=>{
var a=window.pageYOffset;//值始终为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

在my scroll事件中,如何获取值来检查页面是否向下或向上滚动

更新


爱奥尼亚正在自动生成
标签,并在标签中设置
高度:100%
值。Joel Joseph在评论中提到,在尝试获取
window.PageYOffset
时,这是一个问题。是否有解决方法?

问题在于使用了
window.pageYOffset
和带有
离子内容的滚动事件。您将需要使用作为其一部分的滚动事件


虚构的内容
结束(事件){
console.log(事件)
}
请确保也使用
scrollEvents
打开滚动事件


至于在使用
ion content时获得YOffset
我希望我知道,我也在努力寻找一个很好的解决方案

这可能会帮助你:嗨@JoelJoseph谢谢你的链接,它非常清晰,信息丰富,但它不能帮助我理解为什么
window.pageYOffset在我的尝试中始终为0检查是否
overflow-x:hidden
在身体内部或与设置
height:100%
相关的东西在我写这篇文章时出现了一个奇怪的问题我没有设置
overflow-x
,但我尝试将它和
overflow-y
设置到每一个组合,但没有成功与我所知不同的是,您不应该将
overflow-x:hidden
设置在身体内部,也不应该将
高度设置为100%
。这就是解决我问题的方法。您是否检查了chrome控制台中的文档元素以查看其是否已设置,如果已设置,则应将其删除
<ion-content class="page-background" [scrollEvents]="true" (ionScrollStart)="onIonScrollEnd($event)">
  <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>


onIonScrollEnd(event) {
    console.log(event)
}