How can I create a modal in an article that when opened, a different webpage will display in the modal

Answered

3 Comments

  • Ifra Saqlain
    Community Moderator
    Most Engaged Community Member of The Year - 2021

    Hi Melody Quinn, I think first create the subscription page as you need with functionality and then wrap the link of the subscription webpage inside the iframe under the modal.

    e.g.

    <!-- The Modal -->
    <div id="myModal" class="modal">

    <!-- Modal content -->
    <div class="modal-content">
    <span class="close">&times;</span>


      <iframe src="URL OF SUBSCRIPTION WEBPAGE" height="200" width="400"></iframe


    </div>
    </div>

     

     

    0
  • Melody Quinn

    Good morning @..., this seems to be a good start, thank you! 

    A couple of questions:

    1. Is it possible to simply insert a modal into an article via the article html, instead of having an entire article template? 

    2. I would want this modal only to open when a user clicked a button I put on the article, how do I achieve this?

    0
  • Ifra Saqlain
    Community Moderator
    Most Engaged Community Member of The Year - 2021

    Hi Melody, please follow the below steps to add a modal with another webpage.

    1). Go to your article page and paste it at the bottom on the file.

    <!-- Trigger/Open The Modal -->
    <button id="myBtn">Open Modal</button>

    <!-- The Modal -->
    <div id="myModal" class="modal">

    <!-- Modal content -->
    <div class="modal-content">
    <span class="close">&times;</span>
    <iframe src="https://URL.zendesk.com/hc/en-us" style="height:200px;width:300px;" title="Iframe Example"></iframe>
    </div>

    </div>



    https://www.w3schools.com/howto/howto_css_modals.asp - add your webpage URL

     

    Screenshot for same:

     

    2). Open your style.css file and paste it at the bottom.

     

    /* The Modal (background) */
    .modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    }

    /* Modal Content/Box */
    .modal-content {
    background-color: #fefefe;
    margin: 15% auto; /* 15% from the top and centered */
    padding: 20px;
    border: 1px solid #888;
    width: 80%; /* Could be more or less, depending on screen size */
    }

    /* The Close Button */
    .close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    }

    .close:hover,
    .close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
    }

    .modal-content iframe{
    height: 100vh !important;
    width: 100% !important;
    }

     

    3). Open your script.js file and paste it at the bottom under the DOM function.

    // Get the modal
    var modal = document.getElementById("myModal");

    // Get the button that opens the modal
    var btn = document.getElementById("myBtn");

    // Get the <span> element that closes the modal
    var span = document.getElementsByClassName("close")[0];

    // When the user clicks on the button, open the modal
    btn.onclick = function() {
    modal.style.display = "block";
    }

    // When the user clicks on <span> (x), close the modal
    span.onclick = function() {
    modal.style.display = "none";
    }

    // When the user clicks anywhere outside of the modal, close it
    window.onclick = function(event) {
    if (event.target == modal) {
    modal.style.display = "none";
    }
    }

     

    Screenshot for the same:

     

     

    Output is:

     

    See the button -

     

     

    when you are clicked this button- my homepage is open under the modal over current article

     

     

     

     

    Put the code from: https://www.w3schools.com/howto/howto_css_modals.asp

    Hope it works for you.

    Thanks

    0

Please sign in to leave a comment.

Powered by Zendesk