JS判断页面加载状态以及添加遮罩和缓冲动画的代码

JS判断页面加载状态以及添加遮罩和缓冲动画的代码是前端开发中常见的需求。以下为完整攻略。

判断页面加载状态

判断页面的加载状态可以使用window对象的load和DOMContentLoaded事件。需要注意的是,load事件会在页面的所有资源(包括图片、音频、视频等)都加载完成后才触发,而DOMContentLoaded事件则是在页面DOM结构加载完成后就会触发,不会等待资源的加载完成。

使用load事件

window.addEventListener('load', function() {
  // 页面所有资源已完成加载,可以执行相应代码
});

使用DOMContentLoaded事件

document.addEventListener('DOMContentLoaded', function() {
  // DOM结构已经加载完成,可以执行相应代码
});

添加遮罩和缓冲动画

在页面加载时添加遮罩和缓冲动画可以给用户一个友好的体验。以下是一个简单的示例,在页面加载时添加遮罩和缓冲动画:

<!DOCTYPE html>
<html>
<head>
  <title>页面加载示例</title>
  <style>
    #loading-mask {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(255, 255, 255, 0.5);
      z-index: 9999;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    #loading-spinner {
      width: 40px;
      height: 40px;
      border: 4px solid #ccc;
      border-left-color: #555;
      border-radius: 50%;
      animation: rotate 1s infinite linear;
    }
    @keyframes rotate {
      to {
        transform: rotate(360deg);
      }
    }
  </style>
</head>
<body>
  <div id="loading-mask">
    <div id="loading-spinner"></div>
  </div>
  <script>
    window.addEventListener('load', function() {
      // 页面所有资源已完成加载,将遮罩和缓冲动画隐藏
      var mask = document.getElementById('loading-mask');
      var spinner = document.getElementById('loading-spinner');
      mask.style.display = 'none';
      spinner.style.display = 'none';
    });
  </script>
</body>
</html>

在页面上添加了一个半透明的遮罩层,并在遮罩层中心位置添加了一个旋转的缓冲动画。页面加载完成后,通过JS修改遮罩层和缓冲动画的display属性,从而将它们隐藏起来。

另外一个示例是在ajax请求时添加遮罩和缓冲动画,代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>AJAX请求示例</title>
  <style>
    #loading-mask {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(255, 255, 255, 0.5);
      z-index: 9999;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    #loading-spinner {
      width: 40px;
      height: 40px;
      border: 4px solid #ccc;
      border-left-color: #555;
      border-radius: 50%;
      animation: rotate 1s infinite linear;
    }
    @keyframes rotate {
      to {
        transform: rotate(360deg);
      }
    }
  </style>
</head>
<body>
  <div id="loading-mask">
    <div id="loading-spinner"></div>
  </div>
  <button id="ajax-button">发起AJAX请求</button>
  <script>
    var mask = document.getElementById('loading-mask');
    var spinner = document.getElementById('loading-spinner');
    var ajaxButton = document.getElementById('ajax-button');

    ajaxButton.addEventListener('click', function() {
      // 在ajax请求开始前显示遮罩和缓冲动画
      mask.style.display = 'flex';
      spinner.style.display = 'block';

      var xhr = new XMLHttpRequest();
      xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
          // AJAX请求完成后隐藏遮罩和缓冲动画
          mask.style.display = 'none';
          spinner.style.display = 'none';
        }
      };
      xhr.open('GET', 'https://jsonplaceholder.typicode.com/todos/1');
      xhr.send();
    });
  </script>
</body>
</html>

在这个示例中,点击按钮后会发起一个异步的ajax请求,在ajax请求开始前显示遮罩和缓冲动画,在ajax请求完成后隐藏遮罩和缓冲动画。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS判断页面加载状态以及添加遮罩和缓冲动画的代码 - Python技术站

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

相关文章

  • JavaScript返回当前会话cookie全部键值对照的方法

    要返回当前会话中cookie的全部键值对照,可以使用JavaScript的Document.cookie属性和一些字符串处理方法。下面是完整的攻略步骤: 步骤一:获取当前会话的全部cookie字符串 首先,使用Document.cookie属性获取当前页面的全部cookie字符串。该属性的返回值是一个字符串,它包含当前文档中所有cookie的键值对,使用分号…

    JavaScript 2023年6月11日
    00
  • 纯js写的分页表格数据为json串

    下面是详细的攻略: 步骤一:准备要显示的数据 首先我们需要准备要显示在表格中的数据,并将其封装成 JSON 数据格式。以下是一个简单的示例: let data = [ { id: 1, name: ‘Tom’, age: 20, gender: ‘Male’ }, { id: 2, name: ‘Jerry’, age: 22, gender: ‘Femal…

    JavaScript 2023年5月27日
    00
  • JavaScript运行原理分析

    JavaScript运行原理分析 JavaScript是一种高级编程语言,常用于Web开发中的动态交互效果。但是,在进行JavaScript的开发时,我们需要了解JavaScript运行的原理以及其在网页中的执行方式。本文将对JavaScript运行原理进行详细的分析。 JavaScript的运行方式 在Web开发过程中,JavaScript代码的运行是由浏…

    JavaScript 2023年5月17日
    00
  • JS时间特效最常用的三款

    JS时间特效是网站开发中经常使用的技术,比如动态时间显示、倒计时等,下面介绍三款JS时间特效,分别是CountUp.js、Moment.js和Timeago.js。 CountUp.js CountUp.js是一个小型的、跨平台JavaScript库,用于轻松地实现计数器动画。步骤如下: 首先,从GitHub仓库中下载 CountUp.js 库,并将其添加到…

    JavaScript 2023年5月27日
    00
  • js中的鼠标事件有哪些(用法示例学习进阶)

    JS中的鼠标事件是指在浏览器中用户和鼠标交互时,所触发的事件。在前端开发中,这些鼠标事件被广泛应用于各种网站和应用程序中。下面将介绍一些常用的鼠标事件以及它们的用法示例。 鼠标单击事件(click) 鼠标单击事件(click)是指在鼠标左键单击时所触发的事件。在页面中使用最为广泛的是按钮的单击事件。下面是一个示例,当按钮被单击时,将弹出一个提示框。 <…

    JavaScript 2023年6月11日
    00
  • JS实现获取数组中最大值或最小值功能示例

    JS实现获取数组中最大值或最小值功能示例 获取数组中的最大值或最小值是在开发中经常用到的功能。JS提供了一些方法来实现这一功能,本文将详细介绍如何获取数组中的最大值和最小值,以及示例说明。 Array.prototype.sort() JS提供了Array.prototype.sort() 方法来对数组中的元素进行排序,我们可以使用sort()方法将数组元素…

    JavaScript 2023年5月28日
    00
  • JS实现悬浮移动窗口(悬浮广告)的特效

    要实现JS实现悬浮移动窗口(悬浮广告)的特效,需要以下步骤: 1. HTML结构准备 首先,需要在HTML文件中添加一个div作为悬浮窗口的容器,以及一个button作为关闭悬浮窗口的按钮。例如: <div id="float-window"> <button id="close-button"&gt…

    JavaScript 2023年6月11日
    00
  • javascript实现获取字符串hash值

    获取字符串的哈希值实际上是将字符串转换为一个数字,这个数字唯一地代表了该字符串。JavaScript中可以使用哈希算法来获取字符串的哈希值,下面是获取字符串哈希值的完整攻略。 步骤1:选定哈希函数 JavaScript中常用的字符串哈希函数有很多,比如BKDRHash、APHash、JSHash等。这里以BKDRHash为例,其实现代码如下: functio…

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