Javascript - loading/busy indicator or transparent div over page on event click

后端 未结 5 2069
萌比男神i
萌比男神i 2020-12-09 06:45

i got a client side javascript function which is triggered on a button click (basically, its a calculator!!). Sometimes, due to enormous data on the page, the javascript cal

5条回答
  •  情深已故
    2020-12-09 07:07

    Javacript to show a curtain:

    function CalculateAmountOnClick () {
      var curtain = document.body.appendChild( document.createElement('div') );
      curtain.id = "curtain";
      curtain.onkeypress = curtain.onclick = function(){ return false; }
      try {
        // your operations
      }
      finally {
        curtain.parentNode.removeChild( curtain );
      }
    }
    

    Your CSS:

    #curtain {
      position: fixed;
      _position: absolute;
      z-index: 99;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      _height: expression(document.body.offsetHeight + "px");
      background: url(curtain.png);
      _background: url(curtain.gif);
    }
    

    (Move MSIE 6 underscore hacks to conditionally included files as desired.)

    You could set this up as add/remove functions for the curtain, or as a wrapper:

    function modalProcess( callback ) {
      var ret;
      var curtain = document.body.appendChild( document.createElement('div') );
      curtain.id = "curtain";
      curtain.onkeypress = curtain.onclick = function(){ return false; }
      try {
        ret = callback();
      }
      finally {
        curtain.parentNode.removeChild( curtain );
      }
      return ret;
    }
    

    Which you could then call like this:

    var result = modalProcess(function(){
      // your operations here
    });
    

提交回复
热议问题