javascript - 使用 jquery 加载动画以显示在特定的 div 中

标签 javascript jquery html css ajax

每当发生 ajax 调用时,我都会使用 jQuery 显示加载图标,如下所示:

$body = $("body");
$(document).on({
  ajaxStart: function() { $body.addClass("loading");    },
  ajaxStop: function() { $body.removeClass("loading"); }    
});
.modal {
  display:    none;
  position:   fixed;
  z-index:    1000;
  top:        0;
  left:       0;
  height:     100%;
  width:      100%;
  background: rgba( 255, 255, 255, .8 ) 
    url('http://i.stack.imgur.com/FhHRx.gif') 
    50% 50% 
    no-repeat;
}
body.loading {
  overflow: hidden;   
}
body.loading .modal {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal"><!-- Place at bottom of page --></div>

每当发生 ajax 时,这都可以正常加载,但很明显,加载图标将显示在正文中,将 UI 隐藏在后面。相反,我只想在那个特定的 div 中显示加载。在附加的 html 文件中,我只想在

中显示加载
"div id= box1"

Link to HTML File

最佳答案

vijayP 的评论是正确的方向。

必须修改 CSS,因为您已将加载类限制为仅 body 元素。

.loading {
   overflow: hidden;   
}
.loading .modal {
   display: block;
}

然后在 JavaScript 中:

$(document).on({
  ajaxStart: function() { $("#box1").addClass("loading");    },
  ajaxStop:  function() { $("#box1").removeClass("loading"); }    
});

关于javascript - 使用 jquery 加载动画以显示在特定的 div 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39032139/

相关文章:

javascript - Vue.js - 如何从另一个组件调用方法

jquery - 在元素上使用 jQuery .data() 然后通过直接 DOM 操作删除该元素是否会泄漏内存

javascript - jquery中的自定义警告和确认框

javascript - 后退按钮背后的逻辑

javascript - 为什么它说我的对象 "ball"不存在方法draw?

Javascript:for 循环 'for(i=0; i < 3 ; i++)' 在没有使用 continue、break 或 return 的情况下过早终止

javascript - Node js 将 JSON 发送到 jquery 我不明白为什么它不能

html - 如何使用 slim 语法转义 HTML 内容中的方括号?

html - 在 Bootstrap 中设置两个水平 div,在移动模式下只有 1 个全宽

javascript - 从 php 到 select2 的 json 响应不渲染