js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】

这里提供一个基于JavaScript实现的页面加载等待效果,其核心是利用了浏览器window对象的load事件和document对象的DOMContentLoaded事件。

  1. 首先,在HTML文件中加入CSS,用来定义loading提示效果的样式:
.loading {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    background-color: #fff;
    z-index: 999;
}

.loading img {
    width: 100px;
}
  1. 接着,在HTML文件中加入loading提示效果的HTML结构:
<div class="loading">
    <img src="loading.gif" alt="loading">
</div>

其中,loading.gif是一个加载动画的图片。

  1. 然后,在JavaScript文件中编写loading提示效果的实现逻辑:
window.addEventListener(
    "load", // 用window对象的load事件
    function() {
        var loading = document.querySelector(".loading");
        loading.parentNode.removeChild(loading);
        // 加载完毕后,将loading提示效果的节点删除
    }
);

在这里,我们使用window对象的load事件,因为这表示当所有的页面、图片、样式、JavaScript等资源都加载完毕后就会触发这个事件。

  1. 最后,为了处理太慢的网络或其他原因导致页面不加载的情况,我们可以利用document对象的DOMContentLoaded事件来附加loading提示。比如:
document.addEventListener(
    "DOMContentLoaded", // 用document对象的DOMContentLoaded事件
    function() {
        var loading = document.querySelector(".loading");
        if (loading) {
            loading.parentNode.removeChild(loading);
            // 加载完毕后,将loading提示效果的节点删除
        }
    }
);

在这里,我们使用document对象的DOMContentLoaded事件,它表示当HTML文档结构创建完毕后就会触发这个事件。

示例说明:

  1. 示例一:如果我们仅仅使用window对象的load事件,并且加载一个特别慢的资源,比如一个非常大的图片,就会使得loading提示效果的显示时间过长。

  2. 示例二:如果我们仅仅使用document对象的DOMContentLoaded事件,并且同时加载的资源比较多,就会使得我们的loading提示效果提前消失而用户会认为页面未加载完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】 - Python技术站

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

相关文章

  • 详解Redis用链表实现消息队列

    下面是详解Redis用链表实现消息队列的完整攻略。 1. 简介 首先,消息队列(message queue)是一种发送和接收消息的机制。消息队列一般应用于解耦、异步处理和削峰填谷等场景。Redis提供的消息队列是使用链表(list)实现的,它提供的API能够满足大部分的队列操作需求。 2. 链表实现的Redis消息队列 Redis使用链表来实现消息队列,链表…

    other 2023年6月27日
    00
  • C语言数据结构超详细讲解单向链表

    标题:C语言数据结构超详细讲解单向链表 简介 本文主要介绍C语言中的单向链表数据结构,包括单向链表的基本操作及其实现方式。学习本文需要读者已经掌握C语言基础知识。 单向链表概述 单向链表是一种常见的线性数据结构,它由一系列节点组成,每个节点包含两个部分:数据部分和指向下一个节点的指针。最后一个节点的指针为空指针,即指向NULL。单向链表的头节点没有数据,只有…

    other 2023年6月26日
    00
  • javascript的var与let,const之间的区别详解

    JavaScript的var与let、const之间的区别详解 在JavaScript中,var、let和const是用于声明变量的关键字。它们之间有一些重要的区别,包括作用域、变量提升、重复声明和可变性等方面。 作用域 var:使用var声明的变量具有函数作用域,即在声明它的函数内部可见。如果在函数外部声明var变量,则它将成为全局变量。 let、cons…

    other 2023年7月29日
    00
  • 如何利用Java递归解决“九连环”公式

    来讲解一下利用Java递归解决“九连环”公式的攻略。 什么是九连环 九连环是一种中国传统的智力玩具,它由9个不同大小的环组织在一起。总共有4根柱子,其中三根柱子的顶端分别固定了3个环,第四个柱子则是空的,可以用于拼图。游戏的目标是将所有环从一根柱子移动到另一根柱子,同时保证按照从大到小的顺序排列。 递归解决九连环公式 递归算法是一个自己调用自己的算法。它使用…

    other 2023年6月27日
    00
  • 电脑在打开炫舞登录时加载49%就卡住不动了该怎么办?

    问题描述: 电脑在打开炫舞登录时加载49%就卡住不动了,该怎么办? 解决方法: 检查网络连接 首先,应该检查网络连接是否正常。可以利用浏览器打开网页或者尝试连接其他游戏的服务器。如发现网络连接故障,可以联系网络服务商或者管理员解决问题。 示例说明: 如果用户使用的是路由器,可以尝试重启路由器,并重新连接网络,检查是否能够正常登录游戏。 游戏缓存清理 其次,可…

    other 2023年6月25日
    00
  • 详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)

    详解 axios 中封装使用、拦截特定请求、判断所有请求加载完毕 封装 Axios Axios 是一款基于 Promise 的 HTTP 请求库,让我们在浏览器端和 Node.js 中发起 HTTP 请求变得非常容易。但是,为了更好的使用和维护,我们需要对 Axios 进行封装。 我们可以将 Axios 封装成一个单独的模块,该模块会创建一个新的 Axios…

    other 2023年6月25日
    00
  • 详解React 服务端渲染方案完美的解决方案

    下面是详解React服务端渲染方案的完整攻略。 React服务端渲染方案完美的解决方案 前置知识 在了解React服务端渲染方案之前,需要掌握以下技术: React框架的基本使用 Node.js的基本使用 Webpack的基本使用 React服务端渲染的原理 React服务端渲染的原理是将React组件在服务端先渲染成字符串,然后将渲染好的HTML字符串返回…

    other 2023年6月26日
    00
  • win10 Build 14965预览版ISO镜像官方免费下载 提前感受Win10.2

    Win10 Build 14965预览版ISO镜像官方免费下载攻略 1. 了解Win10 Build 14965预览版 Win10 Build 14965是Windows 10操作系统的一个预览版,它包含了一些新的功能和改进。通过提前下载和安装这个预览版,你可以提前感受到Win10.2的新特性。下面是下载和安装的详细步骤: 2. 下载Win10 Build …

    other 2023年8月3日
    00
合作推广
合作推广
分享本页
返回顶部