3

私が作業しているページには、div(位置:固定)> div(位置:相対;幅/高さ:100%)> div(位置:絶対;左/右:50%)のモーダルレイオーバーが表示されることがあります。

モバイルデバイスとデスクトップのChrome/Safariの両方で、スワイプしてもレイオーバーの後ろのページがスクロールします。JavaScriptまたはCSSでこれを防ぐことはできますか?もしそうなら、どのようにすればよいですか?

4

2 に答える 2

3

少なくともデスクトップブラウザでは、スクロールに関連する2つのイベントがあります:scrollmousewheel。前者は要素がスクロールされたときに発生しますが、これは防ぐことはできません。

あなたがしようとしているのはmousewheel、オーバーレイでイベントをキャッチし、そのデフォルトのアクションを防ぐことです。あなたは次のようにJavaScriptとjQueryでそれを行うことができます:

$('#overlay').on('mousewheel', function(e) {
    e.preventDefault();
});

ただし、これはIEとFirefoxでは機能しません。ブラウザの互換性の詳細については、このページを参照してください。

モバイルブラウザでこれを行う一貫した方法はなく、OSXのタッチパッドを介してスクロールする方法もありません。

于 2013-03-27T10:15:54.980 に答える
0

これは真実ですが、Webアプリケーション用のモバイルデバイスもサポートするには、次を使用します。

document.ontouchstart = function(e){ 
    e.preventDefault();

}

于 2014-01-09T12:59:27.857 に答える