使用原生JS创建首页加载进度动画

0 下载量 33 浏览量 更新于2024-08-30 收藏 57KB PDF 举报
"原生JS实现首页进度加载动画" 在网页开发中,为了提供更好的用户体验,尤其是在页面内容较多或加载时间较长的情况下,进度加载动画是非常常见的一种设计。本资源分享了一个利用原生JavaScript编写的首页进度加载动画的实现方法。作者在尝试将其应用于个人博客时,由于博客本身加载速度快,动画效果难以体现,因此转而创建了一个演示页面,通过在body内添加iframe来加载较大的网站,以展示加载动画的实际效果。 在浏览器兼容性方面,作者提到在Safari中可能遇到CSS动画播放同步的问题,而在Chrome和Firefox中则正常运行。对于IE浏览器,作者并未进行测试。性能监控方面,作者利用了Windows对象的`performance`属性,这是一个用于计算精确时间的工具,可以用来跟踪和分析网页的性能。 该加载动画的实现原理并不基于实际文件大小,而是通过监听`document.onreadystatechange`事件并根据`document.readyState`的状态来更新进度条。另一种更准确的方法是利用`XMLHttpRequest`对象的`onprogress`事件,但这需要处理更多的细节,并且仍无法实现100%真实的加载进度,因此作者选择了简化实现。 在代码实现过程中,还涉及到了`document.styleSheets[0].insertRule()`方法,这是一个动态插入CSS规则的手段。至于CSS动画部分,虽然没有详细展开,作者建议对代码进行自我研究,或者通过学习CSS基础知识来理解。推荐了CSS中文参考手册网站作为参考资料。 以下是示例代码的简化版: ```html <!DOCTYPE html> <html lang="en"> <head> <style> /* CSS动画样式 */ .loading-bar { width: 0%; transition: width 2s; } .loading-complete { width: 100%; } </style> </head> <body> <div class="loading-bar"></div> <script> // JavaScript逻辑 document.onreadystatechange = function () { if (document.readyState === 'complete') { document.querySelector('.loading-bar').classList.add('loading-complete'); } }; </script> <!-- 加载iframe --> <iframe src="http://large-website.com"></iframe> </body> </html> ``` 这个简单的代码示例展示了如何在页面加载过程中更新进度条,当页面状态变为'complete'时,进度条动画完成。这只是一个基本的实现,实际应用中可能需要根据具体需求进行优化和调整,以确保在各种浏览器环境下都能有良好的表现。