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日

相关文章

  • JQuery实现Ajax加载图片的方法

    当我们需要在网页中加载图片时,可以使用Ajax技术来实现无刷新加载。JQuery是一个十分流行的JavaScript库,它提供了丰富的AJAX相关的方法,方便我们快速实现AJAX的功能。 下面,我将详细讲解“JQuery实现Ajax加载图片的方法”的完整攻略。 安装JQuery库 在使用JQuery实现Ajax加载图片前,需要先引入JQuery库,这里我们以…

    jquery 2023年5月27日
    00
  • 浅谈js在html中的加载执行顺序,多个jquery ready执行顺序

    浅谈js在html中的加载执行顺序,以及多个jQuery ready执行顺序需要注意以下几点: HTML文档解析的过程中遇到JavaScript代码会立即加载执行,可以通过在JavaScript代码块中添加console.log语句来确认执行顺序。 多个JavaScript文件的加载顺序应该按照依赖关系来决定。即如果一个JavaScript文件依赖于另一个J…

    jquery 2023年5月18日
    00
  • 如何使用jQuery自动滚动到页面底部

    使用jQuery实现自动滚动到页面底部需要做以下几步: 第一步:引入jQuery 第一步是在HTML文件中引入jQuery库。在页面的head标签内增加如下代码: <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script&gt…

    jquery 2023年5月12日
    00
  • jQuery UI Dialog标题选项

    以下是关于 jQuery UI Dialog 标题选项的详细攻略: jQuery UI Dialog 标题选项 标题选项用于设置对话框的标题。可以使用该选项来设置对话框的标题文本、图标和关闭按钮。 语法 $(selector).dialog({ title: "对话框标题", dialogClass: "对话框样式",…

    jquery 2023年5月11日
    00
  • JavaScript插件化开发教程 (一)

    下面是详细的讲解“JavaScript插件化开发教程 (一)”的完整攻略。 什么是 JavaScript 插件? JavaScript 插件是一种可重用的代码模块,它能够在现有 JavaScript 应用程序或网站上提供额外的功能,并且容易被第三方开发者集成进相似的应用程序中。 为什么要使用 JavaScript 插件? 使用 JavaScript 插件的好…

    jquery 2023年5月28日
    00
  • 如何使用jQuery获得一个粗体标签内的值

    要使用jQuery获取一个粗体标签内的值,我们可以使用以下步骤: 使用$()函数选择需要获取值的粗体标签元素。 使用.text()函数获取所元素的文本内容。 以下是两个示例,演示如何使用jQuery获取一个粗体标签内的值: 示例1:获取单个粗体标签的值 以下是一个示例,演示如何使用jQuery获取单个粗体标签的值: <!DOCTYPE html>…

    jquery 2023年5月9日
    00
  • jQWidgets jqxTree animationHideDuration属性

    以下是关于 jQWidgets jqxTree animationHideDuration 属性的完整攻略: jQWidgets jqxTree animationHideDuration 属性 animationHideDuration 属性用于设置树形结构中节点隐藏时的动画持续时间。当该属性设置为0时,节点隐藏时不会有动画效果。 语法 $(‘#jqxTr…

    jquery 2023年5月11日
    00
  • jQuery实现聊天对话框

    下面我将详细讲解“jQuery实现聊天对话框”的完整攻略。 1. 设计 HTML 结构 首先,需要设计 HTML 结构,用于实现聊天对话框的布局。一个简单的聊天对话框的 HTML 结构如下: <div class="chat"> <div class="chat-history"></di…

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