JS实现的自定义显示加载等待图片插件(loading.gif)

本文实例讲述了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切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

(0)

相关推荐

  • JS 自定义带默认值的函数

    开始想当然地认为可能像php或python等语言中一样 js 代码 复制代码 代码如下: function test(a,b="er"){ alert(a + b ); } 可是,定义完之后一直在报错:缺少对象.经过查询才发现,javascript中的确不能这样定义,可以借肋于arguments 是实参数组,参考下例: js 代码 复制代码 代码如下: <script type="text/javascript"> function Test(a) {

  • js插件YprogressBar实现漂亮的进度条效果

    简介 YprogressBar是一款基于HTML5的进度条插件. YprogressBar是一款轻量级进度条插件,使用方便,资源占用少,模仿好压的解压界面,带有数字显示,同时支持在描述中增加参数,以动态显示更详细的执行信息,比如上传速度.剩余时间等等. YprogressBar代码书写简洁,结构设计合理,不会给您的系统带来不良影响. 界面预览  使用说明 文件引用 只需引用yprogressbar.css和yprogressbar.js文件即可. 使用概览 var ypb = new Yprog

  • JS实现的自定义水平滚动字体插件完整实例

    本文实例讲述了JS自定义水平滚动字体插件.分享给大家供大家参考,具体如下: <script type="text/javascript"> $(function(){ var setting = { content : " @@@@@浮动文字#### ", overStop : true, width:"100px", targetId:"huangbiao", //显示之后的回调函数 onAfterShow :

  • js 自定义的联动下拉框

    觉得这个下拉框已经稍微能满足美观需求了, 这个是点出来的效果,写了键盘的方向键,回车,esc等 事件, 并且能根据页面的底部距离判断是否向上展示 今天弄了个联动的,顺便贴部分代码 效果预览: 以下代码解决了ie6的兼容问题 复制代码 代码如下: $containerDivText.mousedown(function() { setTimeout( function() { if ($newUl[0].style.display == 'block') { $newUl.hide(); posi

  • JS实现的通用表单验证插件完整实例

    本文实例讲述了JS实现的通用表单验证插件.分享给大家供大家参考.具体如下: 这里演示一个通用的JS表单验证插件代码.使用方法:第一步:需设定表单项数据类型,第二步:实例表单验证,验证错误提示说明(程序有自带相关错误提示,可自定义每项验证错误提示时文本,只需添加msg). 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-normal-table-check-plug-codes/ 具体代码如下: <!DOCTYPE html PUBLIC &qu

  • JS简单实现文件上传实例代码(无需插件)

    复制代码 代码如下: <span class="up-btn" id="selectFile">请选择文件</span><input type="file" name="fileupload" style="FILTER: alpha(opacity=0); moz-opacity: 0; opacity: 0;" /> // 点击#selectFile触发input:f

  • js实现弹窗插件功能实例代码分享

    目前测试下:支持IE6+ 火狐 谷歌游览器等. 先来看看此组件的基本配置项:如下: 复制代码 代码如下: this.config = { targetCls   :   '.clickElem',   // 点击元素 title:  '我是龙恩',      // 窗口标题 content     :  'text:<p style="width:100px;height:100px">我是龙</p>', //content            :  'img

  • 原生javascript实现的分页插件pagenav

    这一款是用原生javascript实现的分页插件pagenav,页码显示jquery插件,只需要存在#pageNav,则会在其中显示页码,调用时可根据需要先重写go方法.(已去除jquery依赖).... 插件代码如下: /* ************************** author:Keel (keel.sike@gmail.com) ************************** 页码显示jquery插件,只需要存在#pageNav,则会在其中显示页码. 调用时可根据需要先重

  • js中自定义方法实现停留几秒sleep

    js中不存在自带的sleep方法,要想休眠要自己定义个方法 function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } } 以下是补充: 除了Narrative JS,jwacs(Javascript With Adv

  • js自定义select下拉框美化特效

    select的默认样式往往很丑,为保证页面样式风格统一,需要对select进行美化.虽然其美化的插件很多,一搜一大把,但是需要引入长长的css文件和js文件实在是件头痛的事.其实select的实现原理很简单,就是一个点击 切换 显示和隐藏 并传值 的过程.用jquery模拟了,样式想怎么写就怎么写,且不限数量. 朴素的效果: html: <div class="select_box"> <font>›</font> <span>选项1&l

  • JS简单实现城市二级联动选择插件的方法

    本文实例讲述了JS简单实现城市二级联动选择插件的方法.分享给大家供大家参考.具体如下: js实现的城市联动选择菜单,网上经常见到,不多介绍了,本款城市选择菜单原型基于Select,主要使用JavaScript来实现,运用了数组和循环等基础技巧制作完成的.本效果只是为了演示如何实现,里面的数据不全,需要的自己可以添加. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-ejld-city-cha-plug-codes/ 具体代码如下: <htm

  • 用js实现的自定义的对话框的实现代码

    大家好,我们平时在使用Javascript的时候,经常会需要给用户提供一些反馈信息,完成这个功能有很多种方法.但在平时开发中午我们用的最多的可能就是alert这个函数了(这里只说一般情况,不排除个别高手-),使用这个函数确实很方便,可以很简单的向用户提供一些交互信息.不过它也有很多不足,比如他的外观很简 单,而且不可控制,再有它属于浏览器级别的函数,是由各个浏览器自己实现的,所以在不同的浏览器上面,它的界面都不太一样.如果是在以前,这种情况或许很容 易被大多数用户所接受,不过随着时间的推移,用户

随机推荐