很酷的javascript loading效果代码

要实现一个炫酷的JavaScript loading效果,可以按照以下步骤进行:

第一步:编写HTML结构

<div id="loading-wrapper">
    <div id="loading-text">Loading...</div>
    <div id="loading-bar">
        <div id="loading-bar-inner"></div>
    </div>
</div>

第二步:编写CSS样式

#loading-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #f0f0f0; /* 背景颜色 */
  z-index: 9999; /* z-index为最高,让loading界面浮在页面最上层 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

#loading-text {
  font-size: 28px; /* 文本字体大小 */
  margin-top: 20px;
}

#loading-bar {
  width: 70%;
  height: 6px;
  background-color: #ccc; /* 进度条底色 */
  margin-top: 20px;
  position: relative;
}

#loading-bar-inner {
  width: 0;
  height: 100%;
  background-color: #67c6f3; /* 进度条颜色 */
  position: absolute;
  left: 0;
  top: 0;
  transition: all 1.5s ease-in-out; /* 进度条过渡动画效果 */
}

第三步:编写JavaScript脚本

// 获取进度条元素
var progressBar = document.getElementById('loading-bar-inner');

// 设置定时器,每隔一段时间增加进度条长度,实现进度条动画
var timer = setInterval(function() {
    // 获取当前进度条长度
    var width = parseInt(progressBar.style.width) || 0;
    // 设置每次增加的长度
    var step = Math.floor(Math.random() * 5) + 1;
    // 当进度条达到100%时清除定时器
    if (width >= 100) {
        clearInterval(timer);
        // 延时一段时间后隐藏loading界面
        setTimeout(function() {
            var loadingWrapper = document.getElementById('loading-wrapper');
            loadingWrapper.style.display = 'none';
        }, 500);
    } else {
        // 增加进度条长度
        progressBar.style.width = (width + step) + '%';
    }
}, 100);

以上就是一个基本的JavaScript loading效果的完整攻略。

以下是两个示例,网址:demo1.html,demo2.html

  • 示例1
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Demo1</title>
    <style>
        #loading-wrapper {
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          background-color: #f0f0f0; /* 背景颜色 */
          z-index: 9999; /* z-index为最高,让loading界面浮在页面最上层 */
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }

        #loading-text {
          font-size: 28px; /* 文本字体大小 */
          margin-top: 20px;
        }

        #loading-bar {
          width: 70%;
          height: 6px;
          background-color: #ccc; /* 进度条底色 */
          margin-top: 20px;
          position: relative;
        }

        #loading-bar-inner {
          width: 0;
          height: 100%;
          background-color: #67c6f3; /* 进度条颜色 */
          position: absolute;
          left: 0;
          top: 0;
          transition: all 1.5s ease-in-out; /* 进度条过渡动画效果 */
        }
    </style>
</head>
<body>
    <div id="loading-wrapper">
        <div id="loading-text">Loading...</div>
        <div id="loading-bar">
            <div id="loading-bar-inner"></div>
        </div>
    </div>

    <script>
        // 获取进度条元素
        var progressBar = document.getElementById('loading-bar-inner');

        // 设置定时器,每隔一段时间增加进度条长度,实现进度条动画
        var timer = setInterval(function() {
            // 获取当前进度条长度
            var width = parseInt(progressBar.style.width) || 0;
            // 设置每次增加的长度
            var step = Math.floor(Math.random() * 5) + 1;
            // 当进度条达到100%时清除定时器
            if (width >= 100) {
                clearInterval(timer);
                // 延时一段时间后隐藏loading界面
                setTimeout(function() {
                    var loadingWrapper = document.getElementById('loading-wrapper');
                    loadingWrapper.style.display = 'none';
                }, 500);
            } else {
                // 增加进度条长度
                progressBar.style.width = (width + step) + '%';
            }
        }, 100);
    </script>
</body>
</html>
  • 示例2
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Demo2</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <style>
        #loading-wrapper {
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          background-color: #f0f0f0; /* 背景颜色 */
          z-index: 9999; /* z-index为最高,让loading界面浮在页面最上层 */
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }

        #loading-text {
          font-size: 28px; /* 文本字体大小 */
          margin-top: 20px;
        }

        #loading-bar {
          width: 70%;
          height: 6px;
          background-color: #ccc; /* 进度条底色 */
          margin-top: 20px;
          position: relative;
        }

        #loading-bar-inner {
          width: 0;
          height: 100%;
          background-color: #67c6f3; /* 进度条颜色 */
          position: absolute;
          left: 0;
          top: 0;
          transition: all 1.5s ease-in-out; /* 进度条过渡动画效果 */
        }
    </style>
</head>
<body>
    <div id="loading-wrapper">
        <div id="loading-text">Loading...</div>
        <div id="loading-bar">
            <div id="loading-bar-inner"></div>
        </div>
    </div>

    <script>
        // 获取进度条元素
        var progressBar = $('#loading-bar-inner');

        // 设置定时器,每隔一段时间增加进度条长度,实现进度条动画
        var timer = setInterval(function() {
            // 获取当前进度条长度
            var width = parseInt(progressBar.width()) || 0;
            // 设置每次增加的长度
            var step = Math.floor(Math.random() * 5) + 1;
            // 当进度条达到100%时清除定时器
            if (width >= 100) {
                clearInterval(timer);
                // 延时一段时间后隐藏loading界面
                setTimeout(function() {
                    var loadingWrapper = $('#loading-wrapper');
                    loadingWrapper.hide();
                }, 500);
            } else {
                // 增加进度条长度
                progressBar.width(width + step + '%');
            }
        }, 100);
    </script>
</body>
</html>

在这两个示例中,我们在Demo2中使用了jQuery库,将js中的原生DOM操作改写为jQuery的操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:很酷的javascript loading效果代码 - Python技术站

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

相关文章

  • js内存泄漏场景、如何监控及分析详解

    JS内存泄漏场景、如何监控及分析详解 什么是JS内存泄漏? JS内存泄漏是指在代码中,一些不再需要的对象仍然存在于内存中,却没有被正确地释放,最终导致内存不足、程序崩溃等问题。常见的内存泄漏场景有如下几个: 全局变量:在全局环境中定义的变量、函数、对象等,没有被垃圾回收机制清除,会一直存在于内存中。 定时器:使用setInterval和setTimeout定…

    JavaScript 2023年6月10日
    00
  • 一起学写js Calender日历控件

    一起学写 JavaScript Calender 日历控件 – 完整攻略 本攻略将帮助你学习如何编写一个简单的 JavaScript 日历控件。我们将使用原生 JavaScript 实现该控件,这样可以更好地学习和理解 JavaScript 和 DOM 操作。 步骤 1:HTML 结构 我们需要一个 HTML 结构作为日历控件的基础。以下是一个基本的 HTM…

    JavaScript 2023年5月27日
    00
  • js 模块化CommonJS AMD UMD CMD ES6规范详解

    JS 模块化规范详解 JavaScript 的模块化是为了解决多个 JavaScript 文件之间变量、函数命名冲突问题以及提高文件管理便捷性,目前主要有以下几种规范: CommonJS AMD UMD CMD ES6 Modules 接下来详细介绍每种规范的含义、特点及实现方式。 CommonJS CommonJS 规范是 Node.js 平台中所采用的一…

    JavaScript 2023年6月10日
    00
  • JavaScript实现显示隐藏表单文字

    当我们需要提供更多的内容或者选项时,经常会用到表单,但是大量的表单元素很容易造成页面的混乱。因此,有时候我们需要将表单元素隐藏起来,只将必要的内容展示在页面上。这时,我们可以使用 JavaScript 帮助我们实现显示/隐藏表单文字。 下面是一条实现的完整攻略: 添加 HTML 元素 为了实现显示/隐藏表单文字,我们需要使用 JavaScript 操作 HT…

    JavaScript 2023年6月10日
    00
  • js自动下载文件到本地的实现代码

    实现js自动下载文件到本地需要几个关键步骤,包括创建Blob对象、创建URL对象、创建下载链接和模拟点击下载链接。以下是详细的实现代码攻略。 创建Blob对象和URL对象 需要先将文件内容转化成一个Blob对象,并通过URL.createObjectURL()方法创建一个URL对象。代码示例如下: let fileData = ‘file contents’…

    JavaScript 2023年5月27日
    00
  • JS装饰者模式和TypeScript装饰器

    JS装饰者模式 JS装饰者模式是一种基于对象组合的设计模式,它允许你向对象添加新的行为,而不必修改原始代码。这种模式常常被应用在对象功能的增强上,比如在不改变原有代码的情况下,增加对象新的特性或行为,从而达到代码的可重用性和可扩展性。 装饰器模式的核心思想是“装饰”,即在不改变原对象的基础上,通过装饰器对象对其进行增强或改变。通常,装饰器对象会通过接受一个原…

    JavaScript 2023年6月10日
    00
  • Javascript 八进制转义字符(8进制)

    Javascript 八进制转义字符是一种用于表示ASCII码表中特殊字符的编码方式。其使用八进制数来表示对应的ASCII码。在Javascript中,八进制转义字符的格式为”\oxx”,其中xx为两个八进制数字。下面是Javascript中常用的八进制转义字符及其对应的ASCII码: 八进制转义字符 ASCII码 \000 NUL \011 HT \012…

    JavaScript 2023年5月19日
    00
  • C#基于正则表达式抓取a标签链接和innerhtml的方法

    下面是详细的讲解 C#基于正则表达式抓取a标签链接和innerhtml的方法的完整攻略。 步骤一:定位要抓取的页面 首先你需要确定你要抓取的页面,一般情况下是从一个 URL 开始。你可以使用 C# 的网络请求库来请求这个 URL,我们以 System.Net.WebClient 为例: var client = new System.Net.WebClien…

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