我似乎无法在iPad上捕获滚动事件。这些都不起作用,我哪里做错了?
window.onscroll=myFunction;
document.onscroll=myFunction;
window.attachEvent("scroll",myFunction,false);
document.attachEvent("scroll",myFunction,false);
即使在Windows上的Safari3上,它们也能正常工作。具有讽刺意味的是,如果你不介意重击现有事件,PC上的每个浏览器都支持window.onload=
。但在iPad上不行。
发布于 2013-06-19 23:32:29
很抱歉在旧帖子中添加了另一个答案,但我通常会通过使用此代码很好地获得滚动事件(它至少在6.1上有效)
element.addEventListener('scroll', function() {
console.log(this.scrollTop);
});
// This is the magic, this gives me "live" scroll events
element.addEventListener('gesturechange', function() {});
这对我来说很管用。它唯一不做的事情就是为scroll的减速给出一个scroll事件(一旦减速完成,你就会得到一个最终的scroll事件,随心所欲地做)。但是如果你通过这样做来禁用css的惯性
-webkit-overflow-scrolling: none;
你不会在你的元素上得到惯性,尽管你可能不得不做经典的
document.addEventListener('touchmove', function(e) {e.preventDefault();}, true);
发布于 2018-08-24 19:52:40
自从iOS 8问世以来,这个问题就不复存在了。scroll事件现在也可以在iOS Safari中顺利触发了。
因此,如果注册scroll
事件处理程序并检查该事件处理程序中的window.pageYOffset
,一切都会正常工作。
https://stackoverflow.com/questions/2863547
复制相似问题