JavaScript 实现网页头部加载进度条
作者:木棉时间:2026-10-22 03:10:23浏览:72
本文介绍如何使用原生JavaScript在网页顶部实现一个模拟加载进度的进度条。通过监听 document.onreadystatechange 事件,结合定时器动态更新进度条宽度,并在加载完成后进行淡出处理。文章提供了完整的HTML结构、CSS样式及JS逻辑代码,帮助开发者快速集成该功能。
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实现网页头部进度条刷新的完整实例代码。希望这些介绍能对大家有所帮助,如果有任何疑问欢迎留言,小编会及时回复。在此也非常感谢大家对本站网站的支持!
作者最新文章
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
