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不是基础的基础
Dec 24 Javascript
JS处理VBArray的函数使用说明
May 11 Javascript
JQuery的ajax基础上的超强GridView展示
Sep 18 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
Aug 02 Javascript
JS操作数据库的实例代码
Oct 17 Javascript
可插入图片的TEXT文本框
Dec 27 Javascript
js字符串与Unicode编码互相转换
May 17 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
Apr 19 jQuery
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
十分钟教你上手ES2020新特性
Feb 12 Javascript
详解vite2.0配置学习(typescript版本)
Feb 25 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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
vue实现点击展开点击收起效果
2018/04/27 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
python访问sqlserver示例
2014/02/10 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
python分布式计算dispy的使用详解
2019/12/22 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
电气专业推荐信范文
2013/11/18 职场文书
数据员岗位职责
2013/11/19 职场文书
综合实践活动方案
2014/02/14 职场文书
节约用电标语
2014/06/17 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
2014年内勤工作总结
2014/11/24 职场文书
检讨书格式
2015/05/07 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
Python合并pdf文件的工具
2021/07/01 Python