JavaScript 实现网页头部加载进度条

作者:木棉时间:2026-10-22 03:10:23浏览:72

本文介绍如何使用原生JavaScript在网页顶部实现一个模拟加载进度的进度条。通过监听 document.onreadystatechange 事件,结合定时器动态更新进度条宽度,并在加载完成后进行淡出处理。文章提供了完整的HTML结构、CSS样式及JS逻辑代码,帮助开发者快速集成该功能。

JavaScript 实现网页头部加载进度条

在网页头部显示加载进度条是一种常见的用户体验优化手段。需要注意的是,这种进度条并非真正参与浏览器对页面资源加载完整性的判断过程,它仅是一种视觉上的模拟效果。因此,进度条显示完毕并不代表浏览器实际加载任务已全部完成,它只是反映了脚本控制的进度状态。

具体效果如下图所示:

JavaScript 实现网页头部加载进度条

HTML 结构

首先,我们需要构建基础的HTML结构:

HTML部分仅包含两个必要的标签元素,用于承载进度条的背景和进度显示区域。


<div id="barbg">
   <div id="bar">
   </div>
  </div>

CSS 样式

接下来定义CSS样式:

布局设计保持简洁,主要涉及进度条容器的背景色以及内部进度块的定位与宽度控制。


 <style>
   *{margin:0;padding:0;}
   #barbg{height:5px; background:rgb(149,143,143)}
   #barbg div{width:0; height:5px; position:relative; background:rgb(230,10,10);}
  </style>

JavaScript 逻辑实现

核心逻辑由原生JavaScript实现:

使用原生JS编写该功能的代码实现如下:


 <script>
   document.onreadystatechange = function(){
    var bar = document.getElementById('bar');
    var barbg = bar.parentNode;
    var wd = document.body.scrollWidth || document.documentElement.scrollWidth;
    var t = 10;
    var d = 0;
    var i = 0;
    var timer = setInterval(goto,10);
    function goto(){
     d = d + t ;
     bar.style.width = d + 'px';
     if(d >= wd){
      clearInterval(timer);
      bar.style.background = 'rgba(230,10,10,0)';
      none();
     }
    }
    function none(){
     var a = 10 - i;
     i++;
     if(a != 0 && a != 10){a = a * 0.1}
     if(a === 10){a = 1}
     if(a === 0){a = 0}
     barbg.style.background = 'rgba(230,10,10,' + a + ')';
     if(a === 0){barbg.style.display = 'none'}
     if(a != 0){setTimeout(none,50);}
    }
   }
  </script>

上述内容即为利用JavaScript实现网页头部进度条刷新的完整实例代码。希望这些介绍能对大家有所帮助,如果有任何疑问欢迎留言,小编会及时回复。在此也非常感谢大家对本站网站的支持!

作者最新文章