html 锁定页面(js遮罩层弹出div效果)


Posted in Javascript onOctober 27, 2009
<htmlxmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> 
<title>UntitledDocument</title> 
<script> 
function createIframe(){ 
//mask遮罩层 
var newMask=document.createElement("div"); 
newMask.id="mDiv"; 
newMask.style.position="absolute"; 
newMask.style.zIndex="1"; 
_scrollWidth=Math.max(document.body.scrollWidth,document.documentElement.scrollWidth); 
_scrollHeight=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight); 
// _scrollHeight = Math.max(document.body.offsetHeight,document.documentElement.scrollHeight); 
newMask.style.width=_scrollWidth+"px"; 
newMask.style.height=_scrollHeight+"px"; 
newMask.style.top="0px"; 
newMask.style.left="0px"; 
newMask.style.background="#33393C"; 
//newMask.style.background = "#FFFFFF"; 
newMask.style.filter="alpha(opacity=40)"; 
newMask.style.opacity="0.40"; 
newMask.style.display='none'; 
var objDiv=document.createElement("DIV"); 
objDiv.id="div1"; 
objDiv.name="div1"; 
objDiv.style.width="480px"; 
objDiv.style.height="200px"; 
objDiv.style.left=(_scrollWidth-480)/2+"px"; 
objDiv.style.top=(_scrollHeight-200)/2+"px"; 
objDiv.style.position="absolute"; 
objDiv.style.zIndex="2"; //加了这个语句让objDiv浮在newMask之上 
objDiv.style.display="none"; //让objDiv预先隐藏 
objDiv.innerHTML=' <div id="drag" style="position:absolute;height:20px;width:100%;z-index:10001;top:0; background-color:#0033FF;cursor:move ;" align="right"> <input type=button value="X" onclick="HideIframe(document.getElementById(\'mDiv\'),document.getElementById(\'div1\'));"/> </div>'; 
//更改了X按钮为触发关闭事件。 
objDiv.style.border="solid #0033FF 3px;"; 
var frm=document.createElement("iframe"); 
frm.id="ifrm"; 
frm.name="ifrm"; 
frm.style.position="absolute"; 
frm.style.width="100%"; 
frm.style.height=180; 
frm.style.top=20; 
frm.style.display=''; 
frm.frameborder=0; 
objDiv.appendChild(frm); 
// newMask.appendChild(objDiv); //问题出在这里:你把frame所在的div变成了 newMask的子元素,当newMask透明度更改时,当然会影响到frame 
document.body.appendChild(newMask); 
document.body.appendChild(objDiv); 
var objDrag=document.getElementById("drag"); 
var drag=false; 
var dragX=0; 
var dragY=0; 
objDrag.attachEvent("onmousedown",startDrag); 
function startDrag(){ 
if(event.button==1&&event.srcElement.tagName.toUpperCase()=="DIV"){ 
objDrag.setCapture(); 
objDrag.style.background="#0000CC"; 
drag=true; 
dragX=event.clientX; 
dragY=event.clientY; 
} 
}; 
objDrag.attachEvent("onmousemove",Drag); 
function Drag(){ 
if(drag){ 
var oldwin=objDrag.parentNode; 
oldwin.style.left=oldwin.offsetLeft+event.clientX-dragX; 
oldwin.style.top=oldwin.offsetTop+event.clientY-dragY; 
oldwin.style.left=event.clientX-100; 
oldwin.style.top=event.clientY-10; 
dragX=event.clientX; 
dragY=event.clientY; 
} 
}; 
objDrag.attachEvent("onmouseup",stopDrag); 
function stopDrag(){ 
objDrag.style.background="#0033FF"; 
objDrag.releaseCapture(); 
drag=false; 
}; 
} 
function htmlEditor(){ 
var frm=document.getElementById("ifrm"); 
var objDiv=document.getElementById("div1"); 
var mDiv=document.getElementById("mDiv"); 
mDiv.style.display=''; 
var iframeTextContent=''; 
iframeTextContent+=' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'; 
iframeTextContent+=' <html xmlns="http://www.w3.org/1999/xhtml">'; 
iframeTextContent+=' <head>'; 
iframeTextContent+=' <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />'; 
iframeTextContent+=' </head>'; 
iframeTextContent+=' <body>'; 
iframeTextContent+=' <table>'; 
iframeTextContent+=' <tr>'; 
iframeTextContent+=' <td>Name </td>'; 
iframeTextContent+=' <td> <input type="text" value="" /> </td>'; 
iframeTextContent+=' </tr>'; 
iframeTextContent+=' <tr>'; 
iframeTextContent+=' <td>Email </td>'; 
iframeTextContent+=' <td> <input type="text" value="" /> </td>'; 
iframeTextContent+=' </tr>'; 
iframeTextContent+=' <tr>'; 
iframeTextContent+=' <td> <input type="button" id="btGo" value="Go" /> </td>'; 
iframeTextContent+=' </tr>'; 
iframeTextContent+=' </table>'; 
iframeTextContent+=' </body>'; 
iframeTextContent+=' </html>'; 
frm.contentWindow.document.designMode='off'; 
frm.contentWindow.document.open(); 
frm.contentWindow.document.write(iframeTextContent); 
frm.contentWindow.document.close(); 
objDiv.style.display = ""; //显示浮动的div 
var objGo=frm.contentWindow.document.getElementById("btGo"); 
objGo.attachEvent("onclick",function (){ 
HideIframe(mDiv,objDiv); 
}); 
} function HideIframe(mDiv,objDiv){ 
mDiv.style.display='none'; 
objDiv.style.display = "none"; //隐藏浮动的div 
} 
</script> 
</head> 
<body onLoad="createIframe()"> 
<table> 
<tr> 
<td>aa</td> 
<td><input type="text"/></td> 
</tr> 
<tr> 
<td>bb</td> 
<td><input type="text"/></td> 
</tr> 
</table> 
[br] 
<input type="button"id="tt"name="tt"value="Click"onClick="htmlEditor()"/> 
</body> 
</html>
Javascript 相关文章推荐
JS实现点击下载的小例子
Jul 10 Javascript
jquery获取div距离窗口和父级dv的距离示例
Oct 10 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
jquery ui dialog替代confirm实例分析
Jan 25 Javascript
解析如何利用iframe标签以及js制作时钟
Dec 08 Javascript
详解AngularJS 路由 resolve用法
Apr 24 Javascript
关于vue.js组件数据流的问题
Jul 26 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
Sep 07 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
详解Vue.js在页面加载时执行某个方法
Nov 20 Javascript
javascript设计模式之装饰者模式
Jan 30 Javascript
js对象简介与基本用法示例
Mar 13 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 #Javascript
Ajax+Json 级联菜单实现代码
Oct 27 #Javascript
javascript 关于# 和 void的区别分析
Oct 26 #Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 #Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
Oct 26 #Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 #Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 #Javascript
You might like
php session处理的定制
2009/03/16 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP实现递归的三种方法
2020/07/04 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
python将字符串转换成数组的方法
2015/04/29 Python
Python简单实现enum功能的方法
2016/04/25 Python
python机器学习之贝叶斯分类
2018/03/26 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
工作表扬信的范文
2014/01/10 职场文书
全国助残日活动总结
2015/05/11 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis