弹出div后面窗口变灰

这篇博客讲述了作者在工作中遇到的文件上传时重复点击提交按钮的问题,以及如何通过实现div蒙板和模拟进度条来避免这个问题。虽然未能实现真正的文件上传进度条,但找到了一个替代方案,使得在弹出div后页面变灰,阻止了用户的重复操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当时刚工作不久,做东西的时候出现个问题,就是上传文件的时候多次点击提交按钮重复提交的问题。

现在想起来解决的办法有好多种,可是当时的确纠结的够呛。领导说写个文件上传的进度条不错,还美观,当时由于小弟底子太薄,研究了一天也没整出那个实时的文件上传进度条委屈,

无奈之下,上网找了个类似于进度条 的功能(是假滴偷笑)。  

<html>
<head>
<title>JS弹出一个网页对话框,后面全变灰,并不可用。</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
*{margin:0;padding:0;}
</style>
</head>
<body>
JS弹出一个网页对话框,后面全变灰,并不可用。思路:一个覆盖整个页面的层,设置透明度0
    <p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p>
    <p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p><p>测试</p>
    <input type="button" value="点击这里" onClick="sAlert('正在上传文件,请稍后....');" />
    
<script type="text/javascript" language="javascript">
  function sAlert(str){
  var msgw,msgh,bordercolor;
  msgw=400;//提示窗口的宽度
  msgh=100;//提示窗口的高度
  titleheight=25//提示窗口标题高度
  bordercolor="#336699";//提示窗口的边框颜色
  titlecolor="#99CCFF";//提示窗口的标题颜色
  var sWidth,sHeight;
  sWidth=document.body.offsetWidth;//浏览器工作区域内页面宽度 或使用 screen.width//屏幕的宽度
  sHeight=screen.height;//屏幕高度(垂直分辨率)
  //背景层(大小与窗口有效区域相同,即当弹出对话框时,背景显示为放射状透明灰色)
  var bgObj=document.createElement("div");//创建一个div对象(背景层) //动态创建元素,这里创建的是 div
  //定义div属性,即相当于(相当于,但确不是,必须对对象属性进行定义
  //<div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:10000;"></div>
  bgObj.setAttribute('id','bgDiv');
  bgObj.style.position="absolute";
  bgObj.style.top="0";
  bgObj.style.background="#777";
  bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75";
  bgObj.style.opacity="0.6";
  bgObj.style.left="0";
  bgObj.style.width=sWidth + "px";
  bgObj.style.height=sHeight + "px";
  bgObj.style.zIndex = "10000";
  document.body.appendChild(bgObj);//在body内添加该div对象
  //创建一个div对象(提示框层)
  var msgObj=document.createElement("div")
  //定义div属性,即相当于
  //<div id="msgDiv" align="center" style="background-color:white; border:1px solid #336699; position:absolute; left:50%; top:50%; font:12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif; margin-left:-225px; margin-top:npx; width:400px; height:100px; text-align:center; line-height:25px; z-index:100001;"></div>
  msgObj.setAttribute("id","msgDiv");
  msgObj.setAttribute("align","center");
  msgObj.style.background="white";
  msgObj.style.border="1px solid " + bordercolor;
  msgObj.style.position = "absolute";
  msgObj.style.left = "50%";
  msgObj.style.top = "50%";
  msgObj.style.font="12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
  msgObj.style.marginLeft = "-225px" ;
  msgObj.style.marginTop = -75+document.documentElement.scrollTop+"px";
  msgObj.style.width = msgw + "px";
  msgObj.style.height =msgh + "px";
  msgObj.style.textAlign = "center";
  msgObj.style.lineHeight ="25px";
  msgObj.style.zIndex = "10001";
  var title=document.createElement("h4");//创建一个h4对象(提示框标题栏)
  //定义h4的属性,即相当于
  //<h4 id="msgTitle" align="right" style="margin:0; padding:3px; background-color:#336699; filter:progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); opacity:0.75; border:1px solid #336699; height:18px; font:12px Verdana,Geneva,Arial,Helvetica,sans-serif; color:white; cursor:pointer;" onclick="">关闭</h4>
  title.setAttribute("id","msgTitle");
  title.setAttribute("align","right");
  title.style.margin="0";
  title.style.padding="3px";
  title.style.background=bordercolor;
  title.style.filter="progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);";
  title.style.opacity="0.75";
  title.style.border="1px solid " + bordercolor;
  title.style.height="18px";
  title.style.font="12px Verdana, Geneva, Arial, Helvetica, sans-serif";
  title.style.color="white";
  title.style.cursor="pointer";
  title.innerHTML="关闭";
  title.onclick=removeObj;
 
  var button=document.createElement("input");//创建一个input对象(提示框按钮)
  //定义input的属性,即相当于
  //<input type="button" align="center" style="width:100px; align:center; margin-left:250px; margin-bottom:10px;" value="关闭">
  button.setAttribute("type","button");
  button.setAttribute("value","关闭");
  button.style.width="60px";
  button.style.align="center";
  button.style.marginLeft="250px";
  button.style.marginBottom="10px";
  button.style.background=bordercolor;
  button.style.border="1px solid "+ bordercolor;
  button.style.color="white";
  button.onclick=removeObj;
  function removeObj(){//点击标题栏触发的事件
   document.body.removeChild(bgObj);//删除背景层Div
   document.getElementById("msgDiv").removeChild(title);//删除提示框的标题栏
   document.body.removeChild(msgObj);//删除提示框层
  }
  
  document.body.appendChild(msgObj);//在body内添加提示框div对象msgObj
  document.getElementById("msgDiv").appendChild(title);//在提示框div中添加标题栏对象title
  var txt=document.createElement("p");//创建一个p对象(提示框提示信息)
  //定义p的属性,即相当于
  //<p style="margin:1em 0;" id="msgTxt">测试效果</p>
  txt.style.margin="1em 0"
  txt.setAttribute("id","msgTxt");
  txt.innerHTML=str;//来源于函数调用时的参数值
  document.getElementById("msgDiv" ).appendChild(txt);//在提示框div中添加提示信息对象txt
  document.getElementById("msgDiv").appendChild(button);//在提示框div中添加按钮对象button
/*  添加一个图片
  var img=document.createElement("img");
  img.setAttribute("id","dd");
  img.src="E:waiting.gif";
  img.style.width="150";
  title.style.height="25";
  img.style.align="center";
  document.getElementById("msgDiv").appendChild(img);
*/
  }
</script>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值