JS实现的自定义显示加载等待图片插件(loading.gif)


Posted in Javascript onJune 17, 2016

本文实例讲述了JS实现的自定义显示加载等待图片插件。分享给大家供大家参考,具体如下:

在工作中遇到了一个问题 —— 某个业务流程分为几个阶段,每个阶段如果在数据没有显示出来之前就要显示加载图片loading.gif文件,如果有数据了就消失。为此,自己写了一个方法,方便整个工程使用。

<button onclick="show()">show</button>
<button onclick="hide()">hide</button>
<script>
//创建加载对象
var obj = new loadingImg();
//显示加载图片
function show(){
  obj.show();
}
//隐藏加载图片
function hide(){
  obj.hide();
}
//加载图片方法(对象)
function loadingImg(mySetting){
  var that = this;
  if(mySetting == "" || mySetting == undefined || typeof mySetting != "object"){
    mySetting = {};
  }
  //使用时间戳作为空间的ID
  var targetID = new Date().getTime();
  this.setting = {
    //插入图片的容器,使用jquery的查询方式传入参数
    targetConater : "",
    //使用图片的地址
    imgUrl : "../img/loading.gif",
    //图片显示的 宽度
    imgWidth : "32px",
    //图片的默认样式
    imgClass : "",
    //生成控件的ID
    "targetID" : targetID,
    //显示之前的回调函数
    beforeShow : function(plugin){
    },
    //显示之后的回调函数
    afterShow : function(plugin,targetID){
    }
  }
  this.setting = $.extend(this.setting, mySetting);
  //获取屏幕的宽度
  this.getScreenWidth = function(){
    return document.documentElement.clientWidth;
  }
  //获取屏幕的高度
  this.getScreenHeight = function (){
    return document.documentElement.clientHeight;
  }
  //显示控件
  this.show = function(){
    $("#" + that.setting.targetID).show();
  }
  //隐藏控件
  this.hide = function(){
    $("#" + that.setting.targetID).hide();
  }
  this.init = function(){
    //显示之前执行回调函数
    if(typeof that.setting.beforeShow == "function"){
      that.setting.beforeShow(that);
    }
    //存放字符串的变量
    var targetHTML = '';
    //将内容存放到指定的容器中,默认存放到body最底部
    if(that.setting.targetConater != "" && this.setting.targetConater != undefined){
      targetHTML = '<img src="' + that.setting.imgUrl + '" class="' + that.setting.imgClass + '" id="' + that.setting.targetID + '" style="display:none;">';
      $(that.setting.targetConater).html(targetHTML);
    }else{
      targetHTML = '<img src="' + that.setting.imgUrl + '" class="' + that.setting.imgClass + '">';
      targetHTML = '<div id="' + that.setting.targetID + '" style="display:none;position: absolute;top:50%;left: 50%;height: ' + that.getScreenHeight()+';width:'+that.getScreenWidth()+'">' + targetHTML + '</div>';
      $("body").append(targetHTML);
    }
    //判断用户是否自定义了图片的宽度
    if(that.setting.imgWidth != "" && that.setting.imgWidth.indexOf("px")>0 ){
      $("#"+targetID).css("width",that.setting.imgWidth);
    }
    //显示之后执行回调函数
    if(typeof that.setting.afterShow == "function"){
      that.setting.afterShow(that,targetID);
    }
  }
  this.init();
}
</script>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
Jan 22 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
Mar 02 Javascript
图片onload事件触发问题解决方法
Jul 31 Javascript
js constructor的实际作用分析
Nov 15 Javascript
JavaScript包装对象使用介绍
Aug 29 Javascript
js 剪切板应用clipboardData详细解析
Dec 17 Javascript
Javascript实现Array和String互转换的方法
Dec 21 Javascript
基于JS实现类似支付宝支付密码输入框
Sep 02 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
Sep 12 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
Feb 09 Javascript
js实现窗口全屏示例详解
Sep 17 Javascript
如何利用node转发请求详解
Sep 17 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
Jun 17 #Javascript
基于Bootstrap的UI扩展 StyleBootstrap
Jun 17 #Javascript
Bootstrap前端开发案例二
Jun 17 #Javascript
jQuery查看选中对象HTML代码的方法
Jun 17 #Javascript
Bootstrap前端开发案例一
Jun 17 #Javascript
JS实现的自定义水平滚动字体插件完整实例
Jun 17 #Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 #Javascript
You might like
PHP实现ftp上传文件示例
2014/08/21 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
jQuery 动画基础教程
2008/12/25 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
npm的lock机制解析
2019/06/20 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python实现实时监控文件的方法
2016/08/26 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
植物选择:Botanic Choice
2017/02/15 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
25道Java面试题集合
2013/05/21 面试题
安全大检查反思材料
2014/01/31 职场文书
经典促销广告词大全
2014/03/19 职场文书
学校督导评估方案
2014/06/10 职场文书
网聊搭讪开场白
2015/05/28 职场文书
运动会广播稿20字
2015/08/19 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
不要在HTML中滥用div
2021/05/08 HTML / CSS
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android