我正在尝试在滚动时执行某些功能。基本上,如果满足某个滚动位置,我希望应用程序做一些事情。
这里有一些代码:
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");
}
});
}
它在网络浏览器或Android设备上按预期工作,它在滚动时在该条件下反复运行"console.log(("。相反,在 iOS 上,它会等待滚动停止,然后执行控制台.log((。我正在阅读iOS javascript在滚动时停止,出于性能原因。有解决方法吗?
Safari 在滚动
完成之前不会触发滚动事件,因此在这种情况下,您必须执行一些自定义事件侦听。
看看这篇文章:iPhone/iPad的javascript滚动事件?
它可以像这样实现:
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 侦听这两个事件。