如何在jquery中显示加载器时阻止用户与底层用户界面的交互?

时间:2016-11-08 12:20:25

标签: javascript

我的装载机在ajaxstart中显示:

$(document).ajaxStart(function () {
                         $("#wait").css("display", "block");
                     });
                     $(document).ajaxComplete(function () {
                         $("#wait").css("display", "none");
                     });

的CSS:

.wait {    
    display:none;
    position:fixed;
    z-index:1000;
    width:400px;
    height:400px;      
    top:20%;
    left:35%;
    padding:2px;    
}

我的问题是,用户可以在显示加载器时与后台控件进行交互。我不希望任何用户与控件进行交互。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

的CSS

.preloader-container {
  position: fixed;
  z-index: 1031;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: transparent;
  display: block;
  overflow: hidden;
  padding: 25%;
}

.preloader-center {
  position: absolute;
  padding: 15px;
  top: 10%;
  left:30%;
  -ms-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  background: transparent;
  z-index: 1000;
  font-size: 60px;
}

的Javascript

function showLoader(container){
         var html = '<div class="preloader-container js-busy-loader"><div class="preloader-center"><img src="http://i49.tinypic.com/j5z8mb.gif"></div></div>';
                $(container).find(".js-ajax-loader,.js-busy-loader").remove();
                $(container).append(html);
    }

     function hideLoader(container){
            if(typeof container == 'string' && container!==''){
                $(container).find(".s-ajax-loader,.js-busy-loader").remove();
            }else{
                $("body").find(".s-ajax-loader,.js-busy-loader").remove();
            }
     }

示例:https://jsfiddle.net/h1wpmxs0/