html Modal popup

后端 未结 6 1428
别跟我提以往
别跟我提以往 2020-12-03 08:05

How to make a simple modal popup for the following code.And on click on the background the modal popup should not disappear.




        
相关标签:
6条回答
  • 2020-12-03 08:06

    Here's a plain-JavaScript example:

    var modal = document.getElementById('modal');
    var shade = document.getElementById('shade');
    document.getElementById('start').onclick = function() {
      modal.style.display = shade.style.display = 'block';
    };
    document.getElementById('close').onclick = function() {
      modal.style.display = shade.style.display = 'none';
    };
    
    // This code is a workaround for IE6's lack of support for the
    // position: fixed style.
    //
    if (!('maxHeight' in document.body.style)) {
      function modalsize() {
        var top = document.documentElement.scrollTop;
        var winsize = document.documentElement.offsetHeight;
        var docsize = document.documentElement.scrollHeight;
        shade.style.height = Math.max(winsize, docsize) + 'px';
        modal.style.top = top + Math.floor(winsize / 3) + 'px';
      };
      modal.style.position = shade.style.position = 'absolute';
      window.onscroll = window.onresize = modalsize;
      modalsize();
    }
    body {
      margin: 0;
    }
    
    #shade,
    #modal {
      display: none;
    }
    
    #shade {
      position: fixed;
      z-index: 100;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
    }
    
    #modal {
      position: fixed;
      z-index: 101;
      top: 33%;
      left: 25%;
      width: 50%;
    }
    
    #shade {
      background: silver;
      opacity: 0.5;
      filter: alpha(opacity=50);
    }
    <div id="shade"></div>
    <div id="modal">
      <textarea rows="5" cols="25"></textarea>
      <button id="close">Close</button>
    </div>
    
    <p>
      <button id="start">Start</button>
    </p>

    There are various improvements you can make from there, such as iframe hacks to fix IE z-indexing, or encapsulating it in a reusable object, but that's the basic way it's done.

    0 讨论(0)
  • 2020-12-03 08:09

    jQueryUI has a modal dialog plugin. It won't release control simply by clicking the background, as you requested: http://jqueryui.com/demos/dialog/#modal

    <a href="#" class="showModal">Show Modal Box</a>
    <div id="modalContents" style="display:none;">
      <textarea>Hello World</textarea>
    </div>
    

    --

    $(".showModal").click(function(e){
      e.preventDefault();
      $("#modalContents").dialog({bgiframe: true, height: 140, modal: true});
    });
    
    0 讨论(0)
  • 2020-12-03 08:15

    html5 on chrome has the <dialog> element. Do experiment with it

    0 讨论(0)
  • 2020-12-03 08:24

    you can also use native HTML5.1 dailog. currently dialog element is only supported in Chrome 37+, Safari 6+ and Opera 24+.

    var dailog = document.getElementById("dialog"); 
    
    function openModal() { 
       // dailog.show(); 
          dailog.showModal();
    } 
    
    function closeModal() { 
        dailog.close(); 
    } 
    #dialog{width:300px;}
    .right{float:right}
    <button onclick="openModal()">Show dialog</button>
    
    
    <dialog id="dialog">This is a dialog window<br/><br/><br/>
    <button onclick="closeModal()" class="right">Close</button>
    </dialog>

    0 讨论(0)
  • 2020-12-03 08:25

    I think the below code will help you out

    <!DOCTYPE html>
    <html>
    <title>login modal</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
    <body>
    
    <div class="w3-container">
      <h2>Login Modal</h2>
      <button onclick="document.getElementById('id01').style.display='block'" class="w3-button w3-green w3-large">Login</button>
    
      <div id="id01" class="w3-modal">
        <div class="w3-modal-content w3-card-4 w3-animate-zoom" style="max-width:600px">
    
          <div class="w3-center"><br>
            <span onclick="document.getElementById('id01').style.display='none'" class="w3-button w3-xlarge w3-hover-red w3-display-topright" title="Close Modal">&times;</span>
            
          </div>
    
          <form class="w3-container" action="/action_page.php">
            <div class="w3-section">
              <label><b>Username</b></label>
              <input class="w3-input w3-border w3-margin-bottom" type="text" placeholder="Enter Username" name="usrname" required>
              <label><b>Password</b></label>
              <input class="w3-input w3-border" type="password" placeholder="Enter Password" name="psw" required>
              <button class="w3-button w3-block w3-green w3-section w3-padding" type="submit">Login</button>
              <input class="w3-check w3-margin-top" type="checkbox" checked="checked"> Remember me
            </div>
          </form>
    
          <div class="w3-container w3-border-top w3-padding-16 w3-light-grey">
            <button onclick="document.getElementById('id01').style.display='none'" type="button" class="w3-button w3-red">Cancel</button>
            <span class="w3-right w3-padding w3-hide-small">Forgot <a href="#">password?</a></span>
          </div>
    
        </div>
      </div>
    </div>
                
    </body>
    </html>

    0 讨论(0)
  • 2020-12-03 08:30

    a Modal window by definition requires action to be taken by the user before it can be returned to the main window. So what you are looking for is not a modal but a window.

    0 讨论(0)
提交回复
热议问题