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

一、背景和需求

随着 Web 应用越来越复杂和重量级,页面加载速度和性能对用户体验影响越来越大。而在加载大量数据或长列表等场景下,用户往往需要等待一段时间才能看到页面内容。此时,一种好的解决方案是通过显示一个加载等待图片,告诉用户页面正在加载中,避免页面一片空白或者没有响应的死板状态,给用户带来更好的交互体验。

为了简化网页开发中的等待界面实现,我们可以使用 JS 实现的自定义显示加载等待图片插件(loading.gif)。该插件可以快速实现加载中和加载完成两种状态,实现方式灵活可扩展,适用于各种场景。

二、总体思路和实现步骤

插件的实现主要通过一些 DOM 操作来动态地创建、显示、隐藏和删除等待图片,并通过 JS 控制其显隐状态,达到良好的用户交互效果。

详细实现步骤如下:

  1. 创建等待图片 DOM 结构:使用 HTML 等方式创建一个包含在一个 div 容器中的 img 元素,并为其设置 loading.gif 图片路径和一些样式属性等。代码示例 如下:
<div id="loading" style="display: none;">
  <img src="loading.gif" alt="Loading" style="display: block; margin: auto;">
</div>
  1. 实现函数控制图片显示和隐藏:使用 JS 中的 DOM 操作方法来实现 loading 等待图片的控制,包括显示、隐藏、删除等操作。代码示例如下:
// 显示 loading 图片
function showLoading() {
  document.getElementById("loading").style.display = "block";
}

// 隐藏 loading 图片
function hideLoading() {
  document.getElementById("loading").style.display = "none";
}

// 删除 loading 图片
function removeLoading() {
  var elem = document.getElementById("loading");
  if (elem) {
    elem.parentNode.removeChild(elem);
  }
}
  1. 调用函数实现加载等待图片的显示和隐藏:在需要显示等待状态的函数中调用 showLoading() 函数,完成任务后调用 hideLoading() 函数完成等待状态的结束。代码示例如下:
// 在异步请求时显示 loading 图片,并完成任务后自动隐藏
function asyncRequest(url, params, successCallback, failureCallback) {
  showLoading();
  $.ajax({
    url: url,
    type: 'post',
    data: params,
    success: function (response) {
      successCallback(response);
    },
    error: function (xhr, status, error) {
      failureCallback(xhr, status, error);
    },
    complete: function () {
      hideLoading();
    }
  });
}

三、插件使用示例

  1. 基本使用:以实现异步请求时显示等待图片为例,代码示例如下:
// 在异步请求时显示 loading 图片,并完成任务后自动隐藏
function asyncRequest(url, params, successCallback, failureCallback) {
  showLoading();
  $.ajax({
    url: url,
    type: 'post',
    data: params,
    success: function (response) {
      successCallback(response);
    },
    error: function (xhr, status, error) {
      failureCallback(xhr, status, error);
    },
    complete: function () {
      hideLoading();
    }
  });
}
  1. 带参数扩展使用:可以通过传递不同的参数来改变 loading 等待图片的大小、图片源等,以实现更灵活的应用效果。代码示例如下:
// 自定义 loading 等待图片的配置参数
function showLoading(text, imgUrl, width, height) {
  var loadingElem = document.getElementById("loading");
  if (loadingElem) {
    loadingElem.parentNode.removeChild(loadingElem);
  }

  // 创建 loading 等待图片 DOM
  var loadingDiv = document.createElement("div");
  var loadingImg = document.createElement("img");
  loadingImg.setAttribute("src", imgUrl);
  loadingImg.setAttribute("alt", "Loading");
  loadingImg.style.width = width + "px";
  loadingImg.style.height = height + "px";
  loadingImg.style.display = "block";
  loadingImg.style.margin = "auto";
  loadingDiv.setAttribute("id", "loading");
  loadingDiv.style.display = "none";
  loadingDiv.appendChild(loadingImg);

  // 创建加载文字 DOM
  var loadingText = document.createElement("p");
  loadingText.innerText = text;
  loadingText.style.textAlign = "center";
  loadingDiv.appendChild(loadingText);

  document.body.appendChild(loadingDiv);
  document.getElementById("loading").style.display = "block";
}

四、总结

通过本文介绍的 JS 实现的自定义显示加载等待图片插件(loading.gif),可以有效地解决 Web 应用中的等待界面实现问题,提升用户的交互体验。熟悉了插件的实现原理和使用方法之后,我们可以灵活地应用在各种 Web 应用项目中,实现更好的用户体验和业务需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现的自定义显示加载等待图片插件(loading.gif) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 原生JS检测CSS3动画是否结束的方法详解

    首先我们需要了解CSS3动画的结构,一个简单的CSS3动画的代码结构如下所示: @keyframes animationName { from { /* 起始状态样式 */ } to { /* 结束状态样式 */ } } #targetElement { animation-name: animationName; animation-duration: 1…

    jquery 2023年5月27日
    00
  • jQWidgets jqxTabs选定事件

    “jQWidgets jqxTabs选定事件”是指在jQWidgets库中jqxTabs控件(选项卡控件)上进行选定操作后触发的事件。以下是“jQWidgets jqxTabs选定事件”的详细攻略。 jqxTabs控件简介 jqxTabs控件是jQWidgets库提供的一种选项卡控件,用于实现网页界面的选项卡切换效果。可以通过配置选项卡的数量、标题、内容等信…

    jquery 2023年5月12日
    00
  • jQuery+HTML5实现图片上传前预览效果

    下面我将详细讲解“jQuery+HTML5实现图片上传前预览效果”的完整攻略。 一、准备工作 首先,需要在HTML文档中添加一个图片上传的表单元素和一个用于预览图片的图片容器,例如: <form> <input type="file" id="fileInput"> </form> …

    jquery 2023年5月27日
    00
  • asp.net c#采集需要登录页面的实现原理及代码

    实现采集需要登录页面的实现原理及代码,可以分为以下步骤: 模拟登录:首先需要模拟用户登录,获取登录后的Cookie信息,以便后续的请求能够带上正确的信息。 发送请求:在获取到登录后的Cookie信息后,即可发送请求去获取需要采集的内容。 解析页面:获取到响应后,需要解析内容,获取所需的信息。 下面是一个ASP.NET C#实现采集需要登录页面的示例代码。假设…

    jquery 2023年5月27日
    00
  • 原生JS取代一些JQuery方法的简单实现

    下面是“原生JS取代一些JQuery方法的简单实现”的完整攻略。 1. 为什么要使用原生JS替代JQuery方法 在Web开发中,JQuery是一个非常流行的JavaScript库,它为我们提供了很多快捷方便的方法。但是随着现代浏览器的日益进步和Web标准的不断完善,原生JavaScript API也逐渐变得越来越强大,有些JQuery方法已经可以通过原生J…

    jquery 2023年5月27日
    00
  • jQWidgets jqxSortable cursorAt属性

    jQWidgets jqxSortable是一个jQuery插件,用于创建可排序列表和树。其中的cursorAt属性可以定义可拖拽元素相对于鼠标光标的位置,以实现更精细的拖拽体验。 1. cursorAt属性的使用方法 cursorAt属性是一个对象,包含两个数值型属性:left和top。它们分别定义了可拖拽元素相对于鼠标光标的水平和垂直方向上的偏移量。默认…

    jquery 2023年5月12日
    00
  • jQWidgets jqxDropDownList uncheckItem()方法

    jQWidgets jqxDropDownList uncheckItem()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包。jqxDropDownList是Widgets组用于实现下拉。本文将详细介绍如何使用jqxDropDownList的uncheckItem()方法,并提供两个示例。 jqxDropDownL…

    jquery 2023年5月10日
    00
  • jQWidgets jqxDocking addWindow()方法

    以下是关于“jQWidgets jqxDocking addWindow()方法”的完整攻略,包含两个示例说明: 方法简介 addWindow() 方法是 jQWidgets jqxDocking 控件的一个方法,用于向 jqxDocking 控件中添加一个窗口。该方法的语法如下: $("#jqxDocking").jqxDocking(…

    jquery 2023年5月10日
    00
合作推广
合作推广
分享本页
返回顶部