私の問題は@Stephanieと同じですが、@steveの解決策はうまくいきませんでした。
ステファニーと私が共有する問題をもう一度言います。
私は長いブートストラップモーダルを持っています。小さな画面では、スクロールしないとモーダル全体を表示できません。デフォルトでは、ブートストラップ モーダルは position:fixed です。これを position:absolute に変更すると、スクロールできるようになります。
しかし今、私は新しい問題を抱えています。私のページも長く、ページの下部からモーダルを起動すると、モーダルは現在のブラウザー ビューからページの上部に表示されます。
したがって、これらの両方を修正するには:
CSS:
// allows the modal to be scrolled
.modal {position: absolute;}
JavaScript/jQuery:
// jumps browser window to the top when modal is fired
$('body').on('show', '.modal', function(){
$('body').scrollTop(0);
});
しかし、Firefox は scrollTop のセレクターとして「body」を好みませんが、「html」は好みます。Webkit は逆に動作します。ここからのコメントを使用: Animate scrollTop not working in firefox
私はjQuery < 1.9を使用しているので、これを解決するためにブラウザのスニッフィングを行うことができます:
// jumps browser window to the top when modal is fired
$('body').on('show', '.modal', function(){
// Firefox wants 'html', others want 'body'
$(jQuery.browser.mozilla ? "html" : "body").scrollTop(0);
});
モーダルが起動されると、モーダルがページの上部に表示され、ブラウザ ウィンドウが上にスクロールして表示されますが、画面が小さすぎてモーダル全体を表示できない場合でも、ユーザーは下にスクロールできます。