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。我阅读了文档,但所有这些事件只有在手指接触表面时才会发生。一旦你把手指拿开,不管视图是否还在滚动,它们都会停止发射。无论如何谢谢你