複数のモーダルを正しい順序でオーバーレイする方法
特定のシナリオでは、同じページに複数のモーダルを表示する必要があります。ただし、各モーダルが前のモーダルの上に確実に表示されるようにするのは困難な場合があります。この記事では、特に 3 つ以上のモーダルが関係する場合に、モーダルを正しい順序でオーバーレイするための解決策について説明します。
Setup
指定されたコード スニペットでは、複数のモーダル ( "#myModal" および "#myModal2") は、ボタン イベントを通じて起動するようにプログラムされています。問題は、「#myModal2」モーダルが「#myModal」モーダルに重なるのではなく、その背後にどのように表示されるかにあります。
解決策
解決策は、モーダルとその背景の z-index を効率的に管理する JavaScript 関数。以下で詳しく説明するこの関数は、次の手順を実装することで目的の動作を実現します:
Backdrop Z-Index Fix:
スクロールバーの修正:
コード スニペット
<code class="javascript">$(document).on('show.bs.modal', '.modal', function() { const zIndex = 1040 + 10 * $('.modal:visible').length; $(this).css('z-index', zIndex); setTimeout(() => $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack')); }); $(document).on('hidden.bs.modal', '.modal', () => $('.modal:visible').length && $(document.body).addClass('modal-open'));</code>
結論
このソリューションを実装すると、複数のモーダルが正しい順序でオーバーレイされ、背景が常にアクティブなモーダルの後ろに表示されます。この手法はテストされており、Bootstrap バージョン 3.1.0 ~ 3.3.5 で効果的に機能します。
以上がブートストラップで複数のモーダルが正しい順序でオーバーレイされるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。