多分私は質問を誤解しましたが、私が正しければ:
特定の要素以外はスクロールできないようにしたいので、次のようにします。
$(document).bind("touchmove", function(e){
e.preventDefault();
});
ドキュメント内のすべてを防止します。
スクロールしたい要素でイベントのバブリングを停止してみませんか?
(PS: タッチスタートを防止する必要はありません -> クリックの代わりに要素の選択にタッチスタートを使用する場合も同様に防止されます。実際に動きをトレースしているため、タッチムーブのみが必要です)
$('#element').on('touchmove', function (e) {
e.stopPropagation();
});
要素CSSで
#element {
overflow-y: scroll; // (vertical)
overflow-x: hidden; // (horizontal)
}
モバイルデバイスを使用している場合は、さらに一歩進めることもできます。ハードウェア アクセラレーションによるスクロールを強制することができます (ただし、すべてのモバイル ブラウザーがこれをサポートしているわけではありません)。
Browser Overflow scroll:
Android Browser Yes
Blackberry Browser Yes
Chrome for Mobile Yes
Firefox Mobile Yes
IE Mobile Yes
Opera Mini No
Opera Mobile Kinda
Safari Yes
#element.nativescroll {
-webkit-overflow-scrolling: touch;
}
正常:
<div id="element"></div>
ネイティブ感:
<div id="element" class="nativescroll"></div>