私はiPadベースのWebアプリで作業しています。Webページのように見えないように、オーバースクロールを防ぐ必要があります。私は現在、これを使用してビューポートをフリーズし、オーバースクロールを無効にしています:
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
これはオーバースクロールを無効にするのに最適ですが、私のアプリにはいくつかのスクロール可能なdivがあり、上記のコードではスクロールできません。
私はiOS 5以上のみをターゲットにしているので、iScrollのようなハッキーなソリューションは避けました。代わりに、スクロール可能なdivにこのCSSを使用しています。
.scrollable {
-webkit-overflow-scrolling: touch;
overflow-y:auto;
}
これはドキュメントのオーバースクロールスクリプトなしで機能しますが、divスクロールの問題を解決しません。
jQueryプラグインなしで、オーバースクロールの修正を使用する方法はありますが、私の$( '。scrollable')divを免除しますか?
編集:
私はまともな解決策であるものを見つけました:
// Disable overscroll / viewport moving on everything but scrollable divs
$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});
divの先頭または末尾を超えてスクロールしても、ビューポートは移動します。それを無効にする方法も見つけたいのですが。