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 开天辟地入门篇一
Dec 09 Javascript
JavaScript 原型链学习总结
Oct 29 Javascript
再谈javascript图片预加载技术(详细演示)
Mar 12 Javascript
javascript操作符&quot;!~&quot;详解
Feb 10 Javascript
11种ASP连接数据库的方法
Sep 18 Javascript
微信小程序canvas写字板效果及实例
Jun 15 Javascript
详解vue中axios的封装
Jul 18 Javascript
layui的table单击行勾选checkbox功能方法
Aug 14 Javascript
Vue+ElementUI table实现表格分页
Dec 14 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
Jul 22 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
Aug 10 Javascript
修改NPM全局模式的默认安装路径的方法
Dec 15 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
PHP脚本的10个技巧(6)
2006/10/09 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
关于php开启错误提示的总结
2019/09/24 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Python爬取三国演义的实现方法
2016/09/12 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
Python3爬虫全国地址信息
2019/01/05 Python
.NET面试问题集
2015/12/08 面试题
秋季运动会表扬稿
2014/01/16 职场文书
大课间体育活动方案
2014/03/12 职场文书
测绘工程专业求职信
2014/07/15 职场文书
简单租房协议书范本
2014/08/20 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
2015年公司工作总结
2015/04/25 职场文书
2015年采购员工作总结
2015/04/27 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js