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 相关文章推荐
Knockoutjs的环境搭建教程
Nov 26 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
JavaScript 获取任一float型小数点后两位的小数
Jun 30 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
js获取当前日期时间及其它日期操作汇总
Mar 08 Javascript
javascript制作照片墙及制作过程中出现的问题
Apr 04 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
react.js 获取真实的DOM节点实例(必看)
Apr 17 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
Sep 17 Javascript
微信小程序拖拽排序列表的示例代码
Jul 08 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的安全
2006/10/09 PHP
php mysql数据库操作类
2008/06/04 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python列表操作方法详解
2020/02/09 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
大专应届生个人的自我评价
2013/11/21 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
房地产融资计划书
2014/01/10 职场文书
商务考察邀请函范文
2014/01/21 职场文书
师德师风承诺书
2014/05/23 职场文书
中学生自我评价范文
2015/03/03 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
总结Python使用过程中的bug
2021/06/18 Python
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js