我正在使用以下代码来展示纺车:
$("#loading")
.hide()
.ajaxStart(function(){
$(this).show();
setTimeout("3000");
})
.ajaxStop(function(){
$(this).hide("slow");
})
;
和
<div id="loading">
<img src="loading.gif" alt="Loading" />
</div>
问题: “setTimeout()不起作用。如何在网页中心显示图像?”
答案 0 :(得分:2)
setTimeout
需要2个参数,第一个是callback
函数,第二个是timeout
,以毫秒为单位
例如
setTimeout(funcname,1000);
或
setTimeout(function(){
//do stuff
},1000);
在您可以使用的网页中心显示您的图像,例如。这种技术
#loading {
position:absolute;
top:50%;
left:50%;
width:100px;
margin-left:-50px; //negative half of width
height:80px;
margin-top:-40px; //negative half of height
}
答案 1 :(得分:1)
#loading {
display: none;
position: fixed;
top: 48%;
left: 48%
}
JS
$('#loading').ajaxStart(function(){
var that = $(this)
setTimeout(function() {
that.show();
}, "3000");
}).ajaxStop(function(){
$(this).hide("slow");
})
答案 2 :(得分:1)
我不明白你为什么要使用计时器,你可以在ajax请求开始时打开它,然后在成功或错误时将其关闭,如:
$('#loading').show();
$.post(url, request)
.success(function(data) {
$('#loading').hide();
// Do what you want with data
})
.error(function(data) {
$('#loading').hide();
// Show error message
});
要将加载图像放在页面中间,请确保它的容器位于父级的100%范围内,如果嵌套,请确保其父级都不是position:relative
。
#loading {
position:relative;
width:100%;
height:100%;
}
#loading img {
margin-top: -12px; // Half images height;
margin-left: -12px; // Half images width;
position:absolute;
top:50%;
left:50%;
}
OR
#loading {
width:100%;
height:100%;
}
#loading img {
width:24px // Images width
height:auto; // If Image size changes don't mess with proportions
margin:0 auto;
margin-top:48%;
}
答案 3 :(得分:0)
您以错误的方式使用SetTimeout函数
setTimeout(function(){ // do sth }, 3000);