ピンタレストのように、スクロール可能なモーダル ウィンドウを開発しています。それらが起動されると、モーダル ボックス コンテナーのoverflow: hidden
onbody
とon を定義します。overflow: auto
これはデスクトップ ブラウザーでは非常にうまく機能しますが、iPad での最初のテスト (おそらく iOS ではおそらく一般的だと思います) で問題が明らかになりました。
モーダルのスクロールが終了すると、ドキュメントがモーダルよりも長い場合、スクロールが続行されます。
モーダルまたはそのコンテナーによってトリガーされた場合にのみスクロールを受け入れることを意図して、これを試しました。
// Disable browser scrolling on iOS
$(document).on('touchmove',function(e) {
if (($(e.target).attr('id') != id) &&
($(e.target).attr('id') != ('modal-'+id))) {
e.preventDefault();
}
});
そして、厳密にそれを行うことは本当に機能します。モーダルはスクロールし、スクロールが終了すると、モーダル内をスクロールした場合にのみページが可能になります。
何か考えはありますか?
必要に応じて iPad で試してみてください (モーダル ボタンをクリックする必要があります): http://www.onebigrobot.com/beta/altair/transforms-so
前もって感謝します!