本文介绍了一个基于 JavaScript 实现的自定义加载等待图片插件。该插件适用于多阶段业务流程中数据加载前的提示场景,支持动态显示和隐藏 loading 图片,并允许配置图片路径、尺寸及显示回调函数,方便在工程中复用。
JavaScript 自定义加载等待图片插件实现
本文详细介绍了一个由 JavaScript 编写的自定义加载等待图片插件,旨在为开发者提供参考与借鉴。
在实际开发中,常遇到业务流程分阶段执行的情况。若需在数据加载完成前展示加载动画(如 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 编程工作提供有益帮助。