加载后隐藏旋转器
Hide spinner after loading
我想在加载页面后隐藏旋转器我试过了:
$(document).ready(function() {
$('.loader')
.hide() // Hide it initially
.ajaxStart(function() {
$(this).show();
})
.ajaxStop(function() {
$(this).hide();
});
});
还有这个div:
<style>
.loader {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
z-index: 9999;
background: url("{{ asset('img/loading.gif') }}" ) 50% 50% no-repeat rgb(249,249,249);
}
</style>
<div class="loader"></div>
但是没有结果
您可以通过使用
.ajaxSend()
和.ajaxComplete()
Ajax事件来实现这一点处理程序
-
. ajaxsend ():每当Ajax请求即将被发送时,jQuery触发
ajaxSend
事件。任何和所有已经注册到.ajaxSend()
方法的处理程序都将在此时执行。 -
. ajaxcomplete ():每当Ajax请求完成时,jQuery触发
ajaxComplete
事件。所有已经注册.ajaxComplete()
方法的处理程序都将在此时执行。
我使用下面的代码来显示ajax请求时的加载器,然后在ajax请求完成后隐藏它。
代码如下:
var ajax_req_no = 0;
(function ($) {
$(document).ajaxSend(function () {
ajax_req_no = (ajax_req_no < 0) ? 0 : ajax_req_no;
ajax_req_no++;
if ($('.loader').length) {
$('.loader').show();
}
});
$(document).ajaxComplete(function () {
ajax_req_no--;
ajax_req_no = (ajax_req_no < 0) ? 0 : ajax_req_no;
if ($('.loader').length && ajax_req_no == 0) {
$('.loader').fadeOut();
}
});
})(jQuery);
由于ajax请求可以嵌套,所以ajax_req_no
是计算请求的数量,如果计数多于一个loder将显示,否则loder将被隐藏。
注意:从jQuery 1.8版本开始,这个方法应该只附属于document
。
参考:
- .ajaxSend ()
- .ajaxComplete ()
您是否能够在ajax调用之前的代码中放置.show()
,然后在.success()
或.done()
中放置.hide()
…
$("#buttonStartingAjax").click(function(){
$(".loader").show();
$.ajax({...}).done(function(){
$(".loader").hide();
...
});
)};
我觉得你在找这样的东西:
$(document).ready(function() {
$(document)
.ajaxStart(function() {
console.log('some AJAX request has started');
$(".loader").show();
})
.ajaxStop(function() {
console.log('all AJAX requests have completed');
$(".loader").hide();
})
;
$("#btn").click(function() {
// trigger some AJAX call
$.get('example.com');
});
});
.loader {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
/*z-index: 9999;*/ /* to see demo's console.log */
background: url("img/loading.gif") 50% 50% no-repeat yellow;
display: none; /* unless overriden by jQuery */
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="loader"></div>
<button id="btn">Trigger an AJAX request</button>
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- x3dom、旋转和隐藏形状
- 需要按钮显示/隐藏图像旋转 href 添加到 javascript 代码中
- 旋转图像和隐藏菜单
- Bootstrap 3旋转木马滑动时隐藏图像
- 如何使用jquery在旋转木马上隐藏和显示页脚
- 隐藏滑块旋转按钮时,没有更多的元素与引导
- SlickJS视频旋转木马暂停YouTube视频,并永久隐藏占位符图像
- 加载后隐藏旋转器
- 隐藏旋转木马的小显示<340 x
- jquery/CSS旋转隐藏图像的一半
- 获取隐藏的旋转木马项目的图像尺寸
- 圆滑的旋转木马隐藏最后一张幻灯片期间调整大小,圆滑的goto不工作如预期
- 引导旋转木马溢出:隐藏的中断下拉按钮
- 检索自引导旋转木马中的隐藏值
- 如何旋转旋转木马项目和隐藏最远的一个
- 隐藏/删除空旋转木马卡
- 动画旋转器在IE隐藏/显示后以相同的速度旋转