javascript - 添加/删除微调器 gif 到无限滚动?
问题描述
当用户向下滚动时,我有以下代码可以添加更多数据:
$.ajax(
{ type: "POST",
url: "default.aspx/fGetData",
data: varData,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: "true",
cache: "false",
success: function (msg) {
var myRes = JSON.parse(msg.d);
$("#ctl00_ContentPlaceHolder1_dvGridItems01").append(myRes.pHTML);
document.getElementById("ctl00_ContentPlaceHolder1_HiddenFieldAJAXSortLetter").value = myRes.strHiddenFieldAJAXSortLetter;
document.getElementById('ctl00_ContentPlaceHolder1_HiddenFieldAJAXIsProcessing').value='0';
},
Error: function (x, e) { alert("Network error"); } });
} });
基本上,每次用户向下滚动时,都会将更多数据 (.pHTML) 添加到名为 dvGridItems01 的 div 中,直到没有更多项目可供获取。
如何在获取数据时临时显示包含动画微调器.gif 的 div“dvSpinnerContainer”,然后在所有数据(实际上是图像)显示后再次隐藏它?
解决方案
Use beforeSend to display the loader and once the data is fetched, hide the loader.
HTML:
<div id="loader"><img src="loader.png"></div>
Script:
In the script, simply just add and remove the active class.
$.ajax( {
type: "POST",
url: "default.aspx/fGetData",
data: varData,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: "true",
cache: "false",
beforeSend: function(){
$('#loader').addClass('active'); // =====> add active class on loader
}
success: function (msg) {
$('#loader').removeClass('active'); // =====> remove active class from loader
var myRes = JSON.parse(msg.d);
$("#ctl00_ContentPlaceHolder1_dvGridItems01").append(myRes.pHTML);
document.getElementById("ctl00_ContentPlaceHolder1_HiddenFieldAJAXSortLetter").value = myRes.strHiddenFieldAJAXSortLetter;
document.getElementById('ctl00_ContentPlaceHolder1_HiddenFieldAJAXIsProcessing').value='0';
},
Error: function (x, e) { alert("Network error"); } });
} });
推荐阅读
- css - 如何覆盖 AMP 页面中的内联样式?
- android - 如何在 AndroidStudio 中调试 Kotlin 源代码?
- node.js - 使用访问密钥配置 knex 数据库连接
- laravel - 在laravel中显示两年之间的列总和
- sql - 如何添加排名以及应该放置在哪里?
- rest - Bittrex API 在 Postman 中返回 APIKEY_NOT_PROVIDED
- ansible - 循环遍历目录中的 debian 文件并使用 ansible 顺序安装
- dockerfile - 构建一个 docker 镜像 ros2 ,当尝试 tu run 。在 dockerfile 中安装/setup.bash 无效
- ios - 更新到 React Native 0.60+ 后未链接动态库
- spring-boot - 如果表 Spring Data JPA 中不存在,则忽略列