利用JS弹出层实现简单的动态提示“正在加载中,请稍等...

2024-05-04 14:08

本文主要是介绍利用JS弹出层实现简单的动态提示“正在加载中,请稍等...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


 最近项目中大量用到了JQuery中的Ajax异步加载数据,数据量非常大,导致每次加载的时候都感觉到非常非常慢,让客户体验非常不好,就想到用JS做一个简单的提示。

JQuery版本:1.7.1;

编写一个JS类(ck.layer.js):

[javascript]  view plain copy
  1. /************************************* Achievo.Javascript Library ************************** 
  2. * Using jQuery 1.7.1 
  3. * Using cks.js 1.0.1 
  4. * Name : ck.layer.js 
  5. * Create by Angle.Yang on 2012/03/07 [V1.0.0] 
  6. *******************************************************************************************/  
  7. (function ($) {  
  8.   
  9.     $.fn.masklayer = function (settings) {  
  10.         /// <summary>  
  11.         /// 模态窗口,继承 easy-ui.window  
  12.         /// </summary>  
  13.         /// <param name="settings" type="object">扩展了{title:[div中的内容], action:[执行的动作,目前支持"close"], result:[返回结果]}</param>  
  14.         /// <returns type="void" />  
  15.   
  16.         settings = $.extend(true, { title: '加载中...', action: "open" }, settings);  
  17.   
  18.   
  19.         /// <summary>  
  20.         /// 初始化所有 cks 样式的按钮(页面运行时进行初始化)  
  21.         /// </summary>  
  22.         /// <returns type="void" />  
  23.   
  24.         _init = function () {  
  25.             if (settings.action == "open") {  
  26.                 if ($("#div_load").length == 0) {  
  27.                     var boardDiv = "<div id='div_load'><\/div>";  
  28.                     $(document.body).append(boardDiv);  
  29.                 }  
  30.                 if ($("#div_load").length > 0) {  
  31.                     $("#div_load").fix_ie6Select();  
  32.                     $("#div_load").css("display""block");  
  33.                     $("#div_load").css("height", document.body.offsetHeight);  
  34.                     $("#div_load").html(settings.title);  
  35.                 }  
  36.             }  
  37.             else if (settings.action == "close") {  
  38.                 if ($("#div_load").length > 0) $("#div_load").css("display""none");  
  39.             }  
  40.             else if (settings.action = "setTitle") {  
  41.                 if ($("#div_load").length > 0) $("#div_load").html(settings.title);  
  42.                 else {  
  43.                     var boardDiv = "<div id='div_load'>" + settings.title + "<\/div>";  
  44.                     $(document.body).append(boardDiv);  
  45.                     $("#div_load").fix_ie6Select();  
  46.                     $("#div_load").css("display""block");  
  47.                     $("#div_load").css("height", document.body.offsetHeight);  
  48.                 }  
  49.             }  
  50.         };  
  51.   
  52.   
  53.         return (function () { _init() })();  
  54.   
  55.     };  




$("#div_load").fix_ie6Select(); 这句调用另一个JS,主要作用是兼容IE6遮罩一些控件(这个是我老大写的):

  1. [javascript]  view plain copy
    1. /************************************* Achievo.Javascript Library ************************** 
    2. * Using jQuery 1.7.1 
    3. * Using cks.js 1.0.2 
    4. * Name : ck.fixer.js 
    5. * Create by Toky on 2012/02/14 [V1.0.0] 
    6. *******************************************************************************************/  
    7.   
    8. (function ($) {  
    9.     $.fn.fix_ie6Select = function () {  
    10.         /// <summary>  
    11.         /// 兼容弹出层在 IE6 下不能掩盖 Select  
    12.         /// </summary>  
    13.         /// <returns type="void" />  
    14.         return this.each(function (index) {  
    15.             var frm = $(this).find('iframe[tag*="ie6Selector"]');  
    16.             if (cks.browser.IE6) {  
    17.                 var w = $(this).width();  
    18.                 var h = $(this).height();  
    19.                 if (frm.length == 0) {  
    20.                     $(this).prepend('<iframe tag="ie6Selector" src="" frameborder="no" marginwidth="0" marginheight="0" style="border:none;position:absolute;visibility:inherit;top:0px;left:0px;width:' + w + 'px;height:' + h + 'px;z-index:-1;"></iframe>');  
    21.                 }  
    22.                 else {  
    23.                     frm.css("width", w);  
    24.                     frm.css("height", h);  
    25.                 }  
    26.             }  
    27.         });  
    28.     };  
    29. })(jQuery);  

  2. })(jQuery);  

这篇关于利用JS弹出层实现简单的动态提示“正在加载中,请稍等...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959377

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time