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

yizhihongxing

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日

相关文章

  • ASP基础入门第二篇(ASP基础知识)

    那我就来详细讲解一下“ASP基础入门第二篇(ASP基础知识)”的完整攻略吧。 标题一:ASP基础入门第二篇(ASP基础知识) 段落一:什么是ASP? ASP全称为Active Server Pages,是一种动态网页技术。利用ASP技术,可以在网页中嵌入服务器脚本,对用户的输入进行处理,生成动态内容并进行展示。ASP技术可以与多种服务器脚本语言结合使用,例如…

    JavaScript 2023年6月11日
    00
  • 一个非常全面的javascript URL解析函数和分段URL解析方法

    一个非常全面的 Javascript URL 解析函数和分段 URL 解析方法 JavaScript经常被用于处理URL。这个URL解析函数能够完整、彻底地解析一个 URL 字符串,使得开发人员可以轻松地获取任何 URL。 URL 解析函数 使用以下函数来解析一个 URL: function parseURL(url) { var parser = docu…

    JavaScript 2023年6月11日
    00
  • JS简单获取当前年月日星期的方法示例

    下面为你详细讲解“JS简单获取当前年月日星期的方法示例”的完整攻略。 1. 获取当前年月日 要获取当前年月日,可以使用JavaScript提供的Date对象。 1.1 获取当前日期 const now = new Date(); // 创建一个Date对象 const year = now.getFullYear(); // 年 const month = …

    JavaScript 2023年5月27日
    00
  • JS开发常用工具函数(小结)

    JS开发常用工具函数(小结)攻略 为什么需要工具函数? 在JavaScript开发中,我们经常需要针对某一些操作、方法,编写一些公共函数,以便在需要的时候能够直接调用。而这些工具函数,会在项目中使用到很多地方,提高了代码可读性和代码复用性。 JS开发常用工具函数 下面是一些JS开发常用的工具函数,包括: 1. 判断是否为对象 有时候需要判断一个变量是不是对象…

    JavaScript 2023年5月27日
    00
  • javascript的函数、创建对象、封装、属性和方法、继承

    下面我将详细讲解JavaScript中函数、创建对象、封装、属性和方法、继承的完整攻略,并且会给出至少两个示例。 函数 函数的定义 函数是一段被封装起来的可复用代码块。在 JavaScript 中,函数可以通过 function 关键字来定义。函数定义的一般语法格式为: function functionName(param1, param2, …){ …

    JavaScript 2023年5月27日
    00
  • JavaScript 正则表达式(笔记)

    JavaScript 正则表达式(笔记) 什么是正则表达式? 正则表达式是一种用于匹配文本规律的表达式。 在 JavaScript 中,由 RegExp 对象来支持正则表达式的相关操作。 正则表达式语法 在 JavaScript 中,我们可以使用特殊字符来创建正则表达式模式。下面介绍一些基本语法。 字符组 [] 字符组用于匹配多个字符中的任意一个。 示例: …

    JavaScript 2023年5月19日
    00
  • JavaScript获取当前url根目录(路径)

    获取当前网站的根目录或路径是在一些前端应用程序中非常有用的操作,特别是当需要以相对于网站根目录的方式链接样式表、脚本或图像时。以下是获取当前URL根目录(路径)的攻略: 方法一:使用location对象 可以使用JavaScript的location对象获取当前页面的完整URL,然后使用split()方法和push()方法来分离根目录路径。 var path…

    JavaScript 2023年6月11日
    00
  • javascript parseInt与Number函数的区别

    下面是对“JavaScript parseInt与Number函数的区别”的详细讲解以及示例说明。 1. JavaScript中的parseInt函数 parseInt()函数可以将一个字符串解析成整数。它接受两个参数:第一个参数是要转换的字符串,第二个参数是基数(即进制数)。 例如,下面的代码将字符串”10″转换为数字10: let num = parse…

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