Javascript 离子2:在iOS上滚动时运行函数

Javascript 离子2:在iOS上滚动时运行函数,javascript,ios,ionic-framework,scroll,ionic2,Javascript,Ios,Ionic Framework,Scroll,Ionic2,我试图在滚动时执行一些函数。基本上,如果满足某个滚动位置,我希望应用程序能做些什么 下面是一些代码: ionViewDidLoad() { this.content.ionScroll.subscribe((event) => { this.scrollPosition = event.scrollTop; if(this.scrollPosition >= 100){ console.log("more than 100");

我试图在滚动时执行一些函数。基本上,如果满足某个滚动位置,我希望应用程序能做些什么

下面是一些代码:

  ionViewDidLoad() {
    this.content.ionScroll.subscribe((event) => {
      this.scrollPosition = event.scrollTop;
      if(this.scrollPosition >= 100){
        console.log("more than 100");
      }
      else {
        console.log("less than 100");
      }
    });
  }
它可以在web浏览器或Android设备上正常工作,在滚动时在条件内重复运行“console.log()”。 相反,在iOS上,它会等待滚动停止,然后执行console.log()。
我在iOS上读到,出于性能原因,javascript在滚动时会停止。有解决方法吗?

在滚动完成之前,Safari不会触发滚动事件,因此在这种情况下,您必须执行一些自定义事件侦听

查看此帖子:

可以这样实现:

document.addEventListener("touchmove", ScrollStart, false);
document.addEventListener("scroll", Scroll, false);

function ScrollStart() {
    //start of scroll event for iOS
}

function Scroll() {
    //end of scroll event for iOS
    //and
    //start/end of scroll event for other browsers
}

我建议创建一个指令,使用HostListener侦听这两个事件

大约一年前,我在iPad上创建了一个解决方案来解决这个问题,不过我不确定它是否能以一种自然的方式与ionic框架一起工作。基本上,这个插件使用触摸事件来滚动一些易于使用的功能。你试过使用这个插件吗?Scroll事件在使用它时应该能像预期的那样工作。实际上我没有,我会尝试一下,谢谢Hanks,这很有帮助,但是函数“ScrollStart()”只有在我将手指放在屏幕上时才能执行。如果我向下滑动并将手指从屏幕上移开,它将停止执行,而视图仍在滚动。我需要随时知道滚动的位置。有什么建议吗?那你也得听听touchStart。我阅读了文档,但所有这些事件只有在手指接触表面时才会发生。一旦你把手指拿开,不管视图是否还在滚动,它们都会停止发射。无论如何谢谢你