php静态网页设计能否添加页面加载进度条_php静态网页设计进度条JS实现与样式【步骤】

雪夜
发布: 2025-12-21 23:18:09
原创
951人浏览过
PHP静态页提升用户体验可通过三种进度条实现:一、纯JS监听加载事件动态更新宽度;二、CSS动画实现轻量流动效果;三、Fetch API预加载资源并精确反馈进度。

php静态网页设计能否添加页面加载进度条_php静态网页设计进度条js实现与样式【步骤】

如果您在PHP生成的静态网页中希望提升用户体验,页面加载进度条是一种直观的视觉反馈方式。以下是实现该效果的具体步骤:

一、使用纯JavaScript监听资源加载状态

通过监听页面DOMContentLoaded和load事件,结合window.performance获取资源加载时间信息,动态更新进度条宽度。该方法不依赖外部库,兼容性良好,适用于所有由PHP输出的HTML静态页面。

1、在HTML文件的

中添加一个内联样式块,定义进度条基础样式:position: fixed; top: 0; left: 0; height: 3px; width: 0%; background: #4CAF50; z-index: 9999;

2、在

顶部插入一个
作为进度条容器。

立即学习PHP免费学习笔记(深入)”;

3、在前插入script标签,声明变量并初始化进度条:const bar = document.getElementById('loading-bar'); let progress = 0; bar.style.width = progress + '%';

4、使用setTimeout模拟初始加载阶段,每50毫秒递增进度至60%:const timer = setInterval(() => { if (progress

5、监听window.addEventListener('load', () => { bar.style.width = '100%'; setTimeout(() => { bar.style.display = 'none'; }, 300); });

二、基于CSS动画的简易进度指示器

利用CSS关键帧动画创建持续流动的进度效果,避免JavaScript计算开销,适合轻量级静态页面。该方案在PHP模板中可直接嵌入,无需等待DOM完全解析。

1、在

中添加CSS代码:@keyframes loading { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

2、定义进度条容器样式:#loading-indicator { position: fixed; top: 0; left: 0; height: 4px; width: 100%; overflow: hidden; z-index: 9998; }

ChatPDF
ChatPDF

使用ChatPDF,您的文档将变得智能!跟你的PDF文件对话,就好像它是一个完全理解内容的人一样。

ChatPDF 327
查看详情 ChatPDF

3、添加伪元素动画层:#loading-indicator::before { content: ''; display: block; height: 100%; width: 200%; background: linear-gradient(90deg, transparent, rgba(76, 175, 80, 0.8), transparent); animation: loading 2s linear infinite; }

4、在

起始位置插入

5、在前添加脚本,监听页面加载完成时隐藏指示器:window.addEventListener('load', () => { document.getElementById('loading-indicator').style.display = 'none'; });

三、使用Fetch API预加载关键资源并驱动进度条

当PHP静态页包含多个外部CSS、JS或图片资源时,可通过主动发起fetch请求并统计完成比例,实现更精确的进度反馈。该方法需确保PHP输出的HTML中已明确列出待加载资源路径。

1、在HTML中预先定义资源数组:const resources = ['/css/style.css', '/js/main.js', '/images/logo.png'];

2、创建进度条DOM元素并设置初始宽度为0%:const pb = document.createElement('div'); pb.id = 'custom-progress'; pb.style.cssText = 'position:fixed;top:0;left:0;height:4px;background:#2196F3;width:0%;z-index:9999;'; document.body.insertBefore(pb, document.body.firstChild);

3、遍历resources数组,对每个URL调用fetch,并使用Promise.all收集全部响应:Promise.all(resources.map(url => fetch(url).catch(() => {}))).then(() => { pb.style.width = '100%'; });

4、在fetch循环中实时更新进度:let loaded = 0; resources.forEach((url, i) => { fetch(url).then(() => { loaded++; pb.style.width = Math.round((loaded / resources.length) * 100) + '%'; }).catch(() => { loaded++; pb.style.width = Math.round((loaded / resources.length) * 100) + '%'; }); });

5、在所有资源处理完毕后300毫秒隐藏进度条:setTimeout(() => { pb.style.display = 'none'; }, 300);

以上就是php静态网页设计能否添加页面加载进度条_php静态网页设计进度条JS实现与样式【步骤】的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号