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 相关文章推荐
本地对象Array的原型扩展实现代码
Dec 04 Javascript
jQuery 对Select的操作备忘记录
Jul 04 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
使用ionic切换页面卡顿的解决方法
Dec 16 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 jQuery
AngularJS获取json数据的方法详解
May 27 Javascript
js 概率计算(简单版)
Sep 12 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
Oct 11 Javascript
详解vue 自定义marquee无缝滚动组件
Apr 09 Javascript
Vue项目路由刷新的实现代码
Apr 17 Javascript
Rust中的Struct使用示例详解
Aug 14 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多例模式介绍
2013/06/24 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
php实现短信发送代码
2015/07/05 PHP
php轻松实现文件上传功能
2016/03/03 PHP
javascript中的一些注意事项 更新中
2010/12/06 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
create-react-app中添加less支持的实现
2019/11/15 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python下MySQLdb用法实例分析
2015/06/08 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
简单谈谈python中的语句和语法
2017/08/10 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
三个python爬虫项目实例代码
2019/12/28 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
自我推荐书
2013/12/04 职场文书
教师应聘个人求职信
2013/12/10 职场文书
党校培训自我鉴定
2014/02/01 职场文书
房地产活动策划方案
2014/05/14 职场文书
小学教师读书活动总结
2014/07/08 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
趣味运动会口号
2015/12/24 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android