JavaScript实现页面加载遮罩与缓冲动画

作者:窗边听雨

时间:2026-10-26

浏览:534

本文介绍如何使用JavaScript监听页面加载状态,并在加载过程中动态添加全屏遮罩层和缓冲动画。通过操作DOM元素设置样式,实现用户交互阻断及加载提示,加载完成后自动移除遮罩,提升用户体验。

文章目录

JavaScript实现页面加载遮罩与缓冲动画

具体实现代码如下:

 
function initialize() {
addcloud(); // 为页面添加遮罩
document.onreadystatechange = subSomething; // 监听加载状态改变
} 
function addcloud() {
var bodyWidth = document.documentElement.clientWidth;
var bodyHeight = Math.max(document.documentElement.clientHeight, document.body.scrollHeight);
var bgObj = document.createElement("div" );
bgObj.setAttribute( 'id', 'bgDiv' );
bgObj.style.position = "absolute";
bgObj.style.top = "0";
bgObj.style.background = "#000000";
bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75" ;
bgObj.style.opacity = "0.5";
bgObj.style.left = "0";
bgObj.style.width = bodyWidth + "px";
bgObj.style.height = bodyHeight + "px";
bgObj.style.zIndex = "10000"; // 设置它的zindex属性,让这个div在z轴最大,用户点击页面任何东西都不会有反应|
document.body.appendChild(bgObj); // 添加遮罩
var loadingObj = document.createElement("div");
loadingObj.setAttribute( 'id', 'loadingDiv' );
loadingObj.style.position = "absolute";
loadingObj.style.top = bodyHeight / 2 - 32 + "px";
loadingObj.style.left = bodyWidth / 2 + "px";
loadingObj.style.background = "url(../img/loading.gif)" ;
loadingObj.style.width = "32px";
loadingObj.style.height = "32px";
loadingObj.style.zIndex = "10000";
document.body.appendChild(loadingObj); // 添加loading动画-
} 
function removecloud() {
$( "#loadingDiv").remove();
$( "#bgDiv").remove();
} 
function subSomething() {
if (document.readyState == "complete" ) // 当页面加载完毕移除页面遮罩,移除loading动画-
{ 
removecloud();
} 
} 

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章