WEB 教程
实践 示例
HTML 参考手册
CSS 参考手册
PHP 参考手册

如何在 jQuery 中显示加载微调器

主题:JavaScript / jQuery上一页|下一页

答案:使用ajaxStart()ajaxStop()方法

在使用 Ajax 时,显示加载微调器或显示带有"正在加载...请稍候"之类的动画的消息是向用户指示 Ajax 请求正在进行中的流行方式。

您可以使用 jQuery ajaxStart()ajaxStop() 方法创建预加载器。

让我们试试下面的例子来了解它的基本工作原理:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Create a "Please Wait, Loading..." Animation</title>
<style>
.overlay{
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 999;
    background: rgba(255,255,255,0.8) url("loader.gif") center no-repeat;
}
/* 当 body 元素有加载类时关闭滚动条 */
body.loading{
    overflow: hidden;   
}
/* 当 body 元素具有加载类时,使微调器图像可见 */
body.loading .overlay{
    display: block;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
// 单击按钮时发起 Ajax 请求
$(document).on("click", "button", function(){
    $.get("customers.asp", function(data){
        $("body").html(data);
    });       
});
 
// 根据 Ajax 请求状态在 body 元素上添加删除加载类
$(document).on({
    ajaxStart: function(){
        $("body").addClass("loading"); 
    },
    ajaxStop: function(){ 
        $("body").removeClass("loading"); 
    }    
});
</script>
</head>
<body style="text-align: center;">
    <button type="button">Get Customers Details</button>
    <p>Click the above button to get the customers details from the web server via Ajax.</p>
    <div class="overlay"></div>
</body>
</html>

上面示例中的"customers.php"文件只是以表格格式从数据库中返回虚拟客户详细信息,如姓名、地址、地区等。


FAQ 相关问题解答

以下是与此主题相关的更多常见问题解答:

Advertisements