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 相关文章推荐
动态为事件添加js代码示例
Feb 15 Javascript
JS 常用校验函数
Mar 26 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
May 26 Javascript
JS正则表达式大全(整理详细且实用)
Nov 14 Javascript
解析JSON对象与字符串之间的相互转换
Dec 18 Javascript
使用jQuery判断IE浏览器版本的代码
Jun 14 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
Nov 03 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
Apr 28 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
Jul 17 Javascript
浅析JS中什么是自定义react数据验证组件
Oct 19 Javascript
react 原生实现头像滚动播放的示例
Apr 21 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中替换换行符的几种方法小结
2012/10/15 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php动态函数调用方法
2015/05/21 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Python跳出循环语句continue与break的区别
2014/08/25 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
python实现飞机大战项目
2020/03/11 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
三下乡活动方案
2014/01/31 职场文书
求职信的正确写法
2014/07/10 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏