1. ホーム
  2. javascript

[解決済み] iPhone/iPad用javascriptスクロールイベント?

2022-09-27 08:18:08

質問

iPadでスクロールイベントをキャプチャすることができないようです。 これらのどれも動作しませんが、何か間違ったことをしているのでしょうか?

window.onscroll=myFunction;

document.onscroll=myFunction;

window.attachEvent("scroll",myFunction,false);

document.attachEvent("scroll",myFunction,false);

これらはすべて Windows の Safari 3 でさえ動作します。 皮肉なことに、PC 上のすべてのブラウザーは window.onload= をサポートしています。しかし、iPad では動きません。

どのように解決するのですか?

iPhoneOSがキャプチャを行う onscroll イベントを捕捉しますが、あなたが期待する方法とは異なります。

一本指のパンニングは、ユーザーがパンニングを停止するまでイベントを生成しません。 onscroll イベントはページの移動が停止して再描画されたときに生成されます (図 6-1 を参照)。

同様に、2本指でのスクロール発射 onscroll はスクロールを止めた後でのみ発生します。

ハンドラをインストールする通常の方法は、次のように動作します。

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

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