javascript scroll event for iPhone/iPad?

ipad, iphone, javascript, onscroll, scroll

Solution

The iPhoneOS does capture `onscroll` events, except not the way you may expect.

One-finger panning doesn’t generate any events until the user stops panning—an `onscroll` event is generated when the page stops moving and redraws—as shown in Figure 6-1.

Similarly, scroll with 2 fingers fires `onscroll` only after you've stopped scrolling.

The usual way of installing the handler works e.g.

window.addEventListener('scroll', function() { alert("Scrolled"); });
// or
$(window).scroll(function() { alert("Scrolled"); });
// or
window.onscroll = function() { alert("Scrolled"); };
// etc 

(See also https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html)

Problem

I can't seem to capture the scroll event on an iPad. None of these work, what I am doing wrong? ``` window.onscroll=myFunction; document.onscroll=myFunction; window.attachEvent("scroll",myFunction,false); document.attachEvent("scroll",myFunction,false); ``` They all work even on Safari 3 on Windows. Ironically, EVERY browser on the PC supports `window.onload=` if you don't mind clobbering existing events. But no go on iPad.

Original source