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日

相关文章

  • js显示当前系统时间的代码

    下面是关于JS显示当前系统时间的完整攻略: 1. 通过Date对象获取当前系统时间 在JS中,可以通过Date对象来获取当前系统时间。通过创建一个Date对象,我们可以获取当前的年、月、日、时、分、秒等时间信息。下面是获取当前时间的示例代码: const now = new Date(); // 创建Date对象 const year = now.getFu…

    JavaScript 2023年5月27日
    00
  • javascript实现自动输出文本(打字特效)

    下面是JavaScript实现自动输出文本(打字特效)的完整攻略。 1. 前置知识 JavaScript基础知识 HTML/CSS基础知识 DOM基础知识 2. 确定需求 在实现自动输出文本的过程中,我们需要考虑以下问题: 输出文本的内容是什么? 文本输出的速度是多少? 每个字符输出的间隔时间是多少? 3. 实现步骤 3.1 HTML结构 首先,我们需要准备…

    JavaScript 2023年5月28日
    00
  • JS获取单击按钮单元格所在行的信息

    获取单元格所在行的信息一般需要以下步骤: 对表格中的按钮进行事件绑定 在事件绑定的回调函数中获取按钮所在的单元格元素td 获取单元格所在的行元素tr 根据需要获取行元素tr中的其他信息 以下是两条示例: 示例一 HTML代码: <table> <thead> <tr> <th>ID</th> &lt…

    JavaScript 2023年6月11日
    00
  • 面试题:JS如何最快的执行垃圾回收机制

    因为没看见答案,所以也不知道对不对。   JavaScript 的垃圾回收机制是由 JavaScript 引擎自动管理的,通常情况下我们无法控制垃圾回收机制的执行时间和频率。 然而,我们可以采取一些优化策略来减少垃圾回收的性能开销,从而提高代码执行速度。 减少全局变量:全局变量不易被垃圾回收,因为它们始终可达。尽量减少全局变量的使用,并使用局部变量和函数封装…

    JavaScript 2023年4月17日
    00
  • 浅谈ajax在jquery中的请求和servlet中的响应

    AJAX在jQuery中的请求 1.1 基本概念 AJAX是浏览器与服务器之间异步传输数据的一种技术,可以在不刷新整个页面的情况下更新页面的部分内容。jQuery是一个JavaScript库,常用于进行AJAX请求。 1.2 使用方法 使用jQuery发送AJAX请求的基本语法如下: $.ajax({ type: "POST", // G…

    JavaScript 2023年6月11日
    00
  • js控制的回到页面顶端goTop的代码实现

    下面我给你详细讲解“JS控制的回到页面顶端goTop的代码实现”的完整攻略。 1. 设置页面结构 首先,我们需要在HTML文件中添加一个按钮并设置其CSS样式。示例代码如下: <button id="goTop">回到顶部</button> <style> #goTop { position: fixe…

    JavaScript 2023年6月11日
    00
  • jQuery getJSON()+.ashx 实现分页(改进版)

    下面就为您详细讲解“jQuery getJSON()+.ashx实现分页(改进版)”的攻略。 一、准备工作 1.创建基础网页 首先,您需要创建一个基础网页,html部分如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U…

    JavaScript 2023年5月27日
    00
  • Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)

    下面我将详细讲解 Javascript DOM 事件操作的小结,主要包括监听鼠标点击、释放,悬停、离开等事件的监听方式和应用场景。 什么是DOM事件 DOM事件是用户与网页交互的过程中所产生的一些行为,包括鼠标点击、释放,鼠标悬停、离开,键盘按键等,通过监听这些事件可以实现很多网页的交互效果。 DOM事件的三个阶段 在浏览器页面中,DOM事件的整个过程可以被…

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