Reading list Switch to dark mode

    How to display a bootstrap modal inside a div

    Updated 7 December 2023

    Here in this post we will learn how to make a bootstrap modal open inside a div.

    For example

    We have the following HTML Structure

    <div>
      <button id="btn">Open Modal</button>
      <div class="red block">
      </div>
      <div class="blue block">     
      </div>  
    </div>

    Now what we need to do is to open a bootstrap modal inside the blue div on the click of a button.

    So to do so follow the steps given below :-

    Start your headless eCommerce
    now.
    Find out More
    1.  Write the HTML code for the bootstrap modal inside the blue div .
      <div>
        <button id="btn">Open Modal</button>
        <div class="red block">
        </div>
        
        <div class="blue block">
             <!-- Modal -->
          <div id="myModal" class="modal fade" role="dialog">
            <div class="modal-dialog">
      
              <!-- Modal content-->
              <div class="modal-content">
                <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal">&times;</button>
                  <h4 class="modal-title">Modal Header</h4>
                </div>
                <div class="modal-body">
                  <p>Some text in the modal.</p>
                </div>
                <div class="modal-footer">
                  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
              </div>
      
            </div>
          </div>
       </div>
        
      </div>
      
      
    2.  Write the following Javascript Code
      $(document).ready(function(){
          
           $("body").on("click","#btn",function(){
                  
                $("#myModal").modal("show");
            
                //appending modal background inside the blue div
                $('.modal-backdrop').appendTo('.blue');   
          
                //remove the padding right and modal-open class from the body tag which bootstrap adds when a modal is shown
                $('body').removeClass("modal-open")
                $('body').css("padding-right","");     
            });
      
      });
    3. Write the following CSS for it
      .red
      {
        background-color:red;
      }
      
      .blue
      {
        background-color:blue;
        position:relative;// so that .modal & .modal-backdrop gets positioned relative to it
      }
      
      .block 
      {
        width:100%;
        height:200px;
      }
      
      .modal, .modal-backdrop {
          position: absolute !important;
      }
    4. That’s It

    You can also visit this fiddle  for a quick working demo.

    Logic Behind The Scene

    To show a bootstrap modal inside a div the logic behind the above code is to append the HTML code of the modal as well as the modal-backdrop inside that specific div(blue div whose position is relative)  and then making the CSS for modal and modal-backdrop to position:absolute so that the modal and its background gets positioned relative to its parent .

    For those who don’t know what a modal-backdrop is, the answer is that its a div appended whenever a bootstrap modal appears by the modal plugin so as to provide a click area for dismissing shown modals when clicking outside the modal.

    In short its that translucent dark background behind a bootstrap modal.

    You can also check our available Magento 2 extensions.

    . . .

    Leave a Comment

    Your email address will not be published. Required fields are marked*


    6 comments

  • jahan
    • Nishad Bhan (Moderator)
  • Labib Muhammad Jamal
    • Archana Tiwari (Moderator)
  • sharad
  • Vivek Sinha
  • Back to Top

    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home

    Table of Content