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 相关文章推荐
修复IE9&amp;safari 的sort方法
Oct 21 Javascript
js取消单选按钮选中示例代码
Nov 14 Javascript
浅析JavaScript事件和方法
Feb 28 Javascript
jQuery实现checkbox全选的方法
Jun 10 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
Nov 30 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
把普通对象转换成json格式的对象的简单实例
Jul 04 Javascript
react学习笔记之state以及setState的使用
Dec 07 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
Jan 18 Javascript
浅谈JavaScript中的“!!”作用
Aug 03 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
Oct 30 Javascript
vue 组件基础知识总结
Jan 26 Vue.js
基于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获取从html表单传递数组的方法
2015/03/20 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
firebug的一个有趣现象介绍
2011/11/30 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
[54:45]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 Optic vs OG
2018/04/02 DOTA
简单谈谈Python中函数的可变参数
2016/09/02 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
初二政治教学反思
2014/01/12 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
消防宣传口号
2014/06/16 职场文书
大学毕业生自我评价
2015/03/02 职场文书
个人工作表现自我评价
2015/03/06 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
班主任经验交流心得体会
2015/11/02 职场文书