一段简单的网页顶部加载进度条JS代码简洁实现

本文阅读 2 分钟
首页 程序代码 正文

通过CSS 和 JS 实现,打开网页加载的过程中,进度条跟随网页的加载速度而载入,直到网页加载完毕后隐藏;

HTML代码

<div id="progress-bar"></div>

CSS代码

#progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 0; 
    height: 5px;
    background-color: #4caf50;
    transition: width 0.3s linear; 
    z-index: 9999;
}

JS代码

// 创建一个变量来追踪加载进度
let loadProgress = 0;
let progressBar;
 
// 当DOM加载开始时初始化进度条
document.addEventListener('DOMContentLoaded', function() {
    progressBar = document.getElementById('progress-bar');
    progressBar.style.width = '0%';
    progressBar.style.display = 'block';
    
    // 快速增加到10%
    loadProgress = 10;
    progressBar.style.width = loadProgress + '%';
});
 
// 页面完全加载时完成进度条
window.addEventListener('load', function() {
    // 从当前进度平滑过渡到100%
    let interval = setInterval(function() {
        if (loadProgress >= 100) {
            clearInterval(interval);
            // 完成后延迟隐藏进度条
            setTimeout(function() {
                progressBar.style.display = 'none';
            }, 500);
            return;
        }
        loadProgress += 2;
        progressBar.style.width = loadProgress + '%';
    }, 20);
});
 
// 如果加载时间过长,缓慢增加进度
let slowProgress = setInterval(function() {
    if (loadProgress >= 90) {
        clearInterval(slowProgress);
        return;
    }
    if (loadProgress < 90) {
        loadProgress += 0.5;
        if (progressBar) {
            progressBar.style.width = loadProgress + '%';
        }
    }
}, 100);

打开您的网络浏览器中的文件,您将看到的内容:绿色进度栏将出现在页面顶部,它将迅速跳至10%的DOM时,当DOM准备就绪时,然后在页面上很长时间就可以平稳地增加了一定的时间。即使您滚动,栏也可以固定在页面顶部。

文章采用:署名-非商业性使用-相同方式知识共享 署名 4.0 协议国际版 (CC BY-NC-SA 4.0) 许可协议授权。
免责声明:本页面资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系客服并出示版权证明以便删除。
分享
网站如何规范的调用 favicon.ico 和图标属性的规范使用指南
« 上一篇 06-03
UEditorPlus 开源免费编辑器轻量级代码编辑工具下载
下一篇 » 06-14

发表评论 Comment

您必须 后才能发表评论哦~
昵称
请输入您的昵称
邮箱
输入QQ邮箱可获取头像
网址
可通过昵称访问您网站
  • (。・∀・)ノ
  • (u‿ฺu✿ฺ)
  • w(゚Д゚)w
  • ( ̄_, ̄ )
  • (๑•̀ㅂ•́)و✧
  • Σ( ° △ °|||)︴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (*  ̄3)(ε ̄ *)ฅ)
  • ♪(^∇^*)
  • ୧(๑•̀⌄•́๑)૭
  • ╰(*°▽°*)╯
  • (○` 3′○)
  • o(*^@^*)o
  • (#`O′)⌇
  • (°ー°〃)
  • (=。=)
  • (ー`′ー)
  • (o_ _)ノ
  • (@_@;)₌₃
  • ┑( ̄Д  ̄)┍
  • (′Д`)
  • ┗( T﹏T )┛
  • ╮(╯▽╰)╭
  • (。﹏。*)
  • ( =•ω•= )m
  • ≡ω≡
  • (*/ω\*))
  • (✿◡‿◡)
  • ┌(。Д。)┐
  • (;′⌒`)
  • X﹏X
  • ▄︻┻┳═一…… ☆(>○<)
  • (づ ̄3 ̄)づ╭❤~
  • d=====( ̄▽ ̄*)b
  • ✧(≖ ◡ ≖✿)
  • ◐▽◑
  • ( *︾▽︾)
  • (:◎)≡
  • 小黄脸
  • 小电视
  • 阿鲁系
  • 热词系
  • 颜文字
快捷回复: 验证码:
让大家也知道你的独特见解
已有 0 条评论

关于作者

动态快讯

热门文章

QQ客服:3236485 QQ群号:530123520

在线时间:09:00-18:00

扫描二维码

联系官方客服微信号

扫描二维码

关注官方微信公众号