很酷的javascript loading效果代码

yizhihongxing

要实现一个炫酷的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脚本实现滚屏效果的方法 基本思路 我们可以通过监听鼠标或者触摸事件,根据移动的距离来控制页面滚动的位置,从而实现滚屏效果。具体的步骤如下: 监听鼠标或者触摸事件,获取开始移动时的位置和移动的距离。 根据移动的距离计算需要滚动的距离。 利用window.scrollTo()函数来滚动页面的位置。 处…

    JavaScript 2023年6月10日
    00
  • js逆向解密之网络爬虫

    下面我将详细讲解关于“js逆向解密之网络爬虫”的完整攻略。这篇攻略包含以下主要内容: 网络爬虫概述 网络爬虫中的JS逆向解密 示例:对bilibili网站使用JS逆向解密进行网络爬虫 网络爬虫概述 网络爬虫是一种利用程序自动抓取网络信息的技术。网络爬虫可以自动访问网络上的网站,获取其中的数据,并将其存储在本地的数据库中供后续分析使用。在网络爬虫的基础上,我们…

    JavaScript 2023年5月28日
    00
  • 详解JavaScript ES6中的模板字符串

    详解JavaScript ES6中的模板字符串 ES6(ECMAScript 2015)引入了许多新功能,其中一个功能是模板字符串。模板字符串是可以包括变量和表达式的字符串字面量,它可以方便地构建动态字符串,比传统的字符串连接方式更加简单和易读。在本篇文章中,我们将深入探讨什么是模板字符串,以及如何在JavaScript中使用它。 基本语法 模板字符串用反引…

    JavaScript 2023年5月28日
    00
  • JS 循环li添加点击事件 (闭包的应用)

    JS 循环li添加点击事件(闭包的应用)攻略 在 Web 前端开发中,经常需要对列表中的每一项元素进行操作,可是一般的循环添加事件时会出现事件函数中变量值不符合预期的问题。这时候,就需要用到闭包的思想。以下是实现思路和代码示例。 实现思路 找到列表元素的父级元素 找到列表元素,可以通过 querySelectorAll 来找到(或者使用 children) …

    JavaScript 2023年6月10日
    00
  • js 创建书签小工具之理论

    我非常乐意为您讲解如何创建 JavaScript 创建书签小工具的理论攻略,以下是详细说明: Step1:理解书签小工具 书签小工具可以帮助用户快速访问经常浏览的网页,通常在浏览器的工具栏或书签栏中添加。为了创建书签小工具,我们需要理解如何创建书签,以及如何通过 JavaScript 脚本来自动化创建和修改书签。 Step2:创建书签 我们可以通过浏览器的界…

    JavaScript 2023年5月27日
    00
  • JavaScript实现网页截图功能

    实现网页截图功能需要使用到JS的API,其中最主要的是使用html2canvas和canvas2image两个JS库,并且需要遵循跨域访问的规则。下面是实现网页截图功能的完整攻略: 步骤一:引入必要的JS库 在html文件中的head中引入下列两个JS库: <script src="https://cdn.bootcdn.net/ajax/l…

    JavaScript 2023年5月19日
    00
  • JavaScript实现公历转农历功能示例

    为了实现将公历转为农历的功能,我们可以使用 JavaScript 。下面是一些实现方法: 获取农历年份其中天干地支年份和生肖的方法 根据中国传统农历的节气来把年份换算成对应的天干地支年份和生肖。下面是一种计算天干地支的方法: // 获取生肖年份的方法 function zodiacYear(solarYear) { var animals = [ &quot…

    JavaScript 2023年5月27日
    00
  • JavaScript利用闭包实现模块化

    当我们编写 JavaScript 应用时,尽可能使代码模块化是一个好习惯。这意味着把代码划分为小的、独立的、可重用的部分,使得代码更加结构化、可维护和可读性更好。使用闭包实现模块化是一种通用的模式,本文将为你介绍如何使用JavaScript中的闭包实现模块化。 什么是闭包 在深入模块化之前,要先了解闭包。JavaScript中的闭包是指当一个函数引用了该函数…

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