JS基于Ajax实现的网页Loading效果代码

yizhihongxing

下面提供一份“JS基于Ajax实现的网页Loading效果代码”的攻略,共分为以下几个步骤。

步骤一:创建HTML文件和CSS文件

首先,我们需要创建一个基础的 HTML 文件和对应的 CSS 文件。HTML 文件中包含了页面常规结构,如头部、导航、内容等,并且在内容部分添加一个 div 元素来承载我们的 Loading 效果。CSS 文件中包含了页面元素的样式设置,其中要特别注意的是 Loading 效果的样式设置。具体的代码实现,可以参考下面的示例。

HTML 文件:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Loading Effect by Ajax and JS</title>
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <header>
      <h1>Loading Effect by Ajax and JS</h1>
    </header>
    <nav>
      <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>
    <main>
      <div id="loading"></div>
      <p>Content goes here ...</p>
    </main>
  </body>
</html>

CSS 文件:

/* 页面全局样式 */
* {
  margin: 0;
  padding: 0;
}

body {
  background-color: #fff;
  color: #333;
  font-family: Arial, sans-serif;
}

header, nav, main {
  width: 90%;
  max-width: 960px;
  margin: 0 auto;
}

header {
  padding: 20px 0;
  text-align: center;
}

nav {
  margin: 20px 0;
  text-align: center;
}

nav ul {
  list-style-type: none;
}

nav li {
  display: inline-block;
  margin: 0 10px;
}

nav a {
  display: block;
  padding: 10px 20px;
  text-decoration: none;
  color: #333;
  background-color: #f5f5f5;
  border-radius: 5px;
  transition: background-color 0.3s, color 0.3s;
}

nav a:hover {
  background-color: #333;
  color: #fff;
}

main {
  position: relative;
}

/* Loading 效果样式 */
#loading {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 60px;
  height: 60px;
  border-radius: 100%;
  border: 6px solid #ccc;
  border-top-color: #f36;
  animation: rotate 1s linear infinite;
  -webkit-animation: rotate 1s linear infinite;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@-webkit-keyframes rotate {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

步骤二:编写 JS 代码

接下来,我们需要编写一个 JS 文件。此文件作为页面的主要逻辑处理部分,包含了 AJAX 请求和 Loading 效果的控制。具体代码实现步骤如下。

1. 给 Loading 效果添加显示和隐藏的控制

我们需要在 JS 文件中编写代码,控制 Loading 效果的显示和隐藏。具体而言,在 AJAX 请求发送前,将 Loading 效果的 display 属性设置为 block,在 AJAX 请求返回成功或者错误时,将 Loading 效果的 display 属性设置为 none。示例代码如下:

// 获取 Loading 效果元素
var loading = document.getElementById('loading');

// AJAX 请求前显示 Loading 效果
function showLoading() {
  loading.style.display = 'block';
}

// AJAX 请求返回后隐藏 Loading 效果
function hideLoading() {
  loading.style.display = 'none';
}

2. 发送 AJAX 请求并获取返回的数据

我们需要在 JS 文件中编写代码,对我们想要获取的数据进行 AJAX 请求,并在获得请求返回数据后进行处理。一般而言,我们会使用 XMLHttpRequest 对象来实现 AJAX 请求。在 AJAX 请求返回数据时,我们可以通过 XMLHttpRequest.responseText 获取到返回的数据。可以将数据直接显示在页面上,或通过 JS 对数据进行处理。示例代码如下:

function loadData() {
  // AJAX 请求前显示 Loading 效果
  showLoading();

  /*
  * 创建一个 XMLHttpRequest 对象
  * 并设置其请求方法和请求地址
  */
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'http://localhost:8080/api/data', true);

  // 发送 AJAX 请求
  xhr.send();

  // 监听 AJAX 请求状态
  xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) { // AJAX 请求已完成
      if (xhr.status == 200) { // AJAX 请求成功
        var data = xhr.responseText; // 获取返回的数据
        // 对数据进行处理
        // ...
        // 隐藏 Loading 效果
        hideLoading();
      } else { // AJAX 请求错误
        alert('Error occurred: ' + xhr.statusText);
        // 隐藏 Loading 效果
        hideLoading();
      }
    }
  }
}

注意:上述代码中的 http://localhost:8080/api/data 为示例 AJAX 请求地址,请根据实际情况修改。

步骤三:调用 JS 函数

最后,我们在 HTML 文件中的相应位置调用 JS 函数,触发 AJAX 请求并显示 Loading 效果。示例代码如下:

<p><button onclick="loadData()">Load Data</button></p>

以上就是基于 Ajax 实现的网页 Loading 效果的完整攻略。在实际开发过程中,我们还可以对 Loading 效果进行更多的优化和改进,例如添加多种显示样式、添加动画效果、添加进度条等等,以提升用户体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS基于Ajax实现的网页Loading效果代码 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • jQuery 遍历json数组的实现代码

    当使用jQuery操作JSON数据时,我们需要使用 $.each() 或 $.map() 函数来遍历JSON对象或数组。以下是完整的攻略: 1.读取JSON数据 在使用jQuery遍历JSON数据前,我们需要先读取JSON数据。我们可以使用 $.getJSON() 函数从服务器读取JSON数据。 $.getJSON(‘/data.json’, functio…

    JavaScript 2023年5月27日
    00
  • Javascript 中的类和闭包

    JavaScript 中的类和闭包都是比较高级的概念,如果要深入理解和应用它们,需要比初学者更深入的探索。 类 在 JavaScript 中,使用class关键字创建类是一种比较新的方法。使用类的好处是可以更简洁地定义对象,而不需要过多的对象字面量。类可以包含构造函数、属性和方法。下面是一个简单的类的示例: class Animal { constructo…

    JavaScript 2023年5月27日
    00
  • JS图片预加载三种实现方法解析

    JS图片预加载三种实现方法解析 在前端开发中,图片预加载可帮助我们实现更流畅、更高效的用户体验,避免用户在加载大量图片的时候长时间处于白屏状态。本文将介绍三种JS图片预加载的实现方法。 原生JS实现 原生JS实现图片预加载的方法比较简单,我们只需要动态创建img标签,并设置img的src属性为需要预加载的图片地址即可,如下所示: function preLo…

    JavaScript 2023年5月27日
    00
  • 使用Element进行前端开发的详细图文教程

    下面我将为你详细讲解“使用Element进行前端开发的详细图文教程”的完整攻略。 1. 准备工作 在开始使用Element进行前端开发之前,我们需要先安装Vue.js和Element。 1.1 安装Vue.js Vue.js 官方提供了不同的安装方式,这里我们以CDN的方式安装为例: <!DOCTYPE html> <html> &l…

    JavaScript 2023年6月10日
    00
  • javascript字符串与数组转换汇总

    JavaScript字符串与数组转换汇总 在JavaScript中,字符串和数组是我们常用的数据类型之一。但是,在实际的工程中可能需要字符串和数组之间进行转换,这时候就需要借助一些强大的转换方法来实现。这里我们集中介绍一下JavaScript字符串与数组转换的方法以及使用场景。 1. 字符串转换为数组 字符串转换为数组通常采用以下方法: 1.1 split(…

    JavaScript 2023年5月27日
    00
  • 一篇文章了解正则表达式的替换技巧

    一篇文章了解正则表达式的替换技巧 正则表达式是一种强大的文本处理工具,可以用来匹配、替换文本中的特定字符或模式。在实际应用中,经常需要使用正则表达式进行文本替换。本文将介绍几种常见的正则表达式替换技巧,旨在帮助大家更加熟练地应用正则表达式。 基本语法 在使用正则表达式进行替换时,我们需要使用sub函数。其基本语法如下: re.sub(pattern, rep…

    JavaScript 2023年6月10日
    00
  • JavaScript闭包closure详述

    JavaScript闭包(closure)详述 什么是闭包? 闭包(closure)是一个常见的概念,但其含义和使用却让很多JavaScript初学者感到困惑。闭包是指有权访问另一个函数作用域中变量的函数。简单来说,闭包是一个内部函数,它可以访问外部函数中声明的变量和参数,即使外部函数已经返回了。 闭包的实际应用 闭包最常见的应用之一是为回调和事件处理程序创…

    JavaScript 2023年6月10日
    00
  • JavaScript定时器和优化的取消定时器方法

    JavaScript定时器和优化的取消定时器方法是网页开发过程中很重要的一部分。在本文中,我将详细讲解这个话题,并给出两个示例说明。 一、JavaScript定时器概述 JavaScript定时器提供了一种延迟执行代码的方法,它允许我们在指定的时间间隔后执行代码或者在指定的时间之后只执行一次代码。在 JavaScript 中,我们常用的定时器函数有 setI…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部