很酷的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日

相关文章

  • JavaScript相等运算符的九条规则示例详解

    当我们在编写JavaScript代码时,常常需要判断两个变量是否相等,这时候就需要使用相等运算符,即==和===。但是,由于JavaScript的这两种相等运算符在使用时存在很多陷阱和特殊情况,所以需要我们特别注意。以下是详细的JavaScript相等运算符的九条规则和示例详解。 规则一:如果两个变量类型不同,则不相等 例如,以下代码的输出结果为false:…

    JavaScript 2023年5月28日
    00
  • JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】

    我们来详细讲解一下JS表单验证方法实例小结。 验证电话号码 function validatePhone(phone) { // 正则表达式验证手机号码,只允许输入数字,以 1 开头,总长度为 11 位 var reg = /^1\d{10}$/; return reg.test(phone); } 以上代码是一个验证电话号码的函数模板,其中使用了正则表达式…

    JavaScript 2023年6月10日
    00
  • javaScript中一些常见的数据类型检查校验

    下面是关于JavaScript中常见的数据类型检查校验的详细攻略。 概述 在JavaScript中,我们经常需要检查或校验数据类型,以确保我们的代码可以正确地处理各种数据。在做这些操作时,需要了解JavaScript中几种常见的数据类型,以及如何进行类型检查和校验。 常见的数据类型 以下是JavaScript中几种常见的数据类型: 字符串 字符串是一系列字符…

    JavaScript 2023年6月10日
    00
  • 使用js修改客户端注册表的方法

    使用js修改客户端注册表的方法需要借助于ActiveXObject对象及其子对象WScript.Shell。具体方法如下: 创建WScript.Shell对象 需要先创建 WScript.Shell 对象,可以使用以下代码。 var WshShell = new ActiveXObject("WScript.Shell"); 使用 Wsh…

    JavaScript 2023年6月11日
    00
  • JS实现快速的导航下拉菜单动画效果附源码下载

    下面是 JS 实现快速的导航下拉菜单动画效果的完整攻略: 一、思路 首先,我们需要给下拉菜单添加一个点击事件,并在点击后显示子菜单; 接着,使用 CSS 中的 transition 属性实现下拉菜单的动画效果; 最后,用 JS 控制下拉菜单的显示和隐藏。 二、实现步骤 2.1 HTML 结构 首先,我们需要在 HTML 中添加一个导航栏和下拉菜单。 <…

    JavaScript 2023年6月11日
    00
  • HTTP报文及ajax基础知识

    HTTP报文及AJAX基础知识 HTTP报文 HTTP报文的格式如下: <HTTP请求报文> <请求头> <请求体> <HTTP响应报文> <响应头> <响应体> 其中,请求头和响应头以键值对形式出现,每个键值对占一行,键和值之间使用一个冒号加一个空格隔开;请求体和响应体可以为空,也可以…

    JavaScript 2023年6月11日
    00
  • JavaScript 程序错误Cannot use ‘in’ operator to search的解决方法

    针对这个问题,我可以给出以下的解决方法攻略: 问题描述 在 JavaScript 中,有时候会出现类似以下的错误提示: Uncaught TypeError: Cannot use ‘in’ operator to search for ‘length’ in null 这是因为在使用 in 操作符时,对象无法被识别,或者对象不支持该操作,导致出现错误。这种…

    JavaScript 2023年6月10日
    00
  • Javascript Date setMonth() 方法

    以下是关于JavaScript Date对象的setMonth()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的setMonth()方法 JavaScript Date对象的setMonth()方法设置日期对象的月份部分。该方法接受一个整数,表示要设置的月份。月份从0开始,即0表示一月,11表示十二月。如果该参数超出了JavaScr…

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