js控制div弹出层实现方法


Posted in Javascript onMay 11, 2015

本文实例讲述了js控制div弹出层实现方法。分享给大家供大家参考。具体分析如下:

这是个功能很好,且容易调用和控制的弹出层。感兴趣的朋友可以调试运行一下看看效果如何~O(∩_∩)O~

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>弹出窗口(可拖动,背景灰色透明)</title>
<script type="text/javascript">
<!--
/*FileName:AlertMsg.js
title:提示标题
content:提示的内容*/
document.write("<style type=\"text/css\">*{padding:0; margin:0}.close{float:right;cursor:default}</style>")
function $(id){ return document.getElementById(id)}
function AlertMsg(title,content){
var msgw,msgh,msgbg,msgcolor,bordercolor,titlecolor,titlebg,con;
con = "<form><table style='margin:10px 15px 15px 15px; border:0;'><tr><th style='border:0; line-height:22px; padding:3px 0; vertical-align:top;font-weight:bold;'>分类:</th><td style='border:0; line-height:22px; padding:3px 0; vertical-align:top;width:75%;'><input type='text' name='typename' size='20'/></td></tr><tr><th></th><td style='border:0; line-height:22px; padding:3px 0; vertical-align:top;width:75%;'><button style='line-height:normal;' type='submit' onclick='return submitform()'>确定</button> <button style='line-height:normal;' type='reset'>取消</button></td></tr></table></form>";
//弹出窗口设置
msgw = 300;  //窗口宽度
msgh = 150;  //窗口高度
msgbg = "#FFF";  //内容背景
msgcolor = "#000";  //内容颜色
bordercolor = "#000"; //边框颜色
titlecolor = "#FFF"; //标题颜色
titlebg = "#369";  //标题背景
//遮罩背景设置
var sWidth,sHeight;
sWidth = screen.availWidth;
sHeight = document.body.scrollHeight;
//创建遮罩背景
var maskObj = document.createElement("div");
maskObj.setAttribute('id','maskdiv');
maskObj.style.position = "absolute";
maskObj.style.top = "0";
maskObj.style.left = "0";
maskObj.style.background = "#777";
maskObj.style.filter = "Alpha(opacity=30);";
maskObj.style.opacity = "0.3";
maskObj.style.width = sWidth + "px";
maskObj.style.height = sHeight + "px";
maskObj.style.zIndex = "10000";
document.body.appendChild(maskObj);
//创建弹出窗口
var msgObj = document.createElement("div")
msgObj.setAttribute("id","msgdiv");
msgObj.style.position ="absolute";
msgObj.style.top = (screen.availHeight - msgh) / 4 + "px";
msgObj.style.left = (screen.availWidth - msgw) / 2 + "px";
msgObj.style.width = msgw + "px";
msgObj.style.height = msgh + "px";
msgObj.style.fontSize = "12px";
msgObj.style.background = msgbg;
msgObj.style.border = "1px solid " + bordercolor;
msgObj.style.zIndex = "10001";
//创建标题
var thObj = document.createElement("div");
thObj.setAttribute("id","msgth");
thObj.className = "DragAble";
thObj.style.cursor = "move";
thObj.style.padding = "4px 6px";
thObj.style.color = titlecolor;
thObj.style.background = titlebg;
var titleStr = "<a class='close' title='关闭' style='cursor:pointer' onclick='CloseMsg()'>关闭</a>"+"<span>"+ title +"</span>";
thObj.innerHTML = titleStr;
//创建内容
var bodyObj = document.createElement("div");
bodyObj.setAttribute("id","msgbody");
bodyObj.style.padding = "10px";
bodyObj.style.lineHeight = "1.5em";
bodyObj.innerHTML = con;
var txt = document.createTextNode(content)
bodyObj.appendChild(txt);
//生成窗口
document.body.appendChild(msgObj);
$("msgdiv").appendChild(thObj);
$("msgdiv").appendChild(bodyObj);
}
function CloseMsg(){
//移除对象
document.body.removeChild($("maskdiv"));
$("msgdiv").removeChild($("msgth"));
$("msgdiv").removeChild($("msgbody"));
document.body.removeChild($("msgdiv"));
}
//拖动窗口
var ie = document.all;  
var nn6 = document.getElementById&&!document.all;  
var isdrag = false;  
var y,x;  
var oDragObj;  
function moveMouse(e) {  
if (isdrag) {  
oDragObj.style.top = (nn6 ? nTY + e.clientY - y : nTY + event.clientY - y)+"px";  
oDragObj.style.left = (nn6 ? nTX + e.clientX - x : nTX + event.clientX - x)+"px";  
return false;  
}  
}  
function initDrag(e) {  
var oDragHandle = nn6 ? e.target : event.srcElement;  
var topElement = "HTML";  
while (oDragHandle.tagName != topElement && oDragHandle.className != "DragAble") {  
oDragHandle = nn6 ? oDragHandle.parentNode : oDragHandle.parentElement;  
}  
if (oDragHandle.className=="DragAble") {  
isdrag = true;  
oDragObj = oDragHandle.parentNode;  
nTY = parseInt(oDragObj.style.top);  
y = nn6 ? e.clientY : event.clientY;  
nTX = parseInt(oDragObj.style.left);  
x = nn6 ? e.clientX : event.clientX;  
document.onmousemove = moveMouse;  
return false;  
}  
}  
document.onmousedown = initDrag;  
document.onmouseup = new Function("isdrag=false");  
//-->
</script>
</head>
<body>
<table width="600" border="0" cellspacing="0" cellpadding="0">
 <tr >
  <td height="100" align="center" >
<p><a href="javascript:AlertMsg("温馨提示",'')">点我试试!</a></p>
  </td>
 </tr>
</table>
</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript的事件描述
Sep 08 Javascript
基于Jquery的动态创建DOM元素的代码
Dec 28 Javascript
JQuery对checkbox操作 (循环获取)
May 20 Javascript
Javascript继承机制的设计思想分享
Aug 28 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
JQuery 控制内容长度超出规定长度显示省略号
May 23 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
基于JavaScript短信验证码如何实现
Jan 24 Javascript
纯JS单页面赛车游戏制作代码分享
Mar 03 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
Nov 29 Javascript
Antd的table组件表格的序号自增操作
Oct 27 Javascript
JavaScript实现点击文字切换登录窗口的方法
May 11 #Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
May 11 #Javascript
JS选项卡动态替换banner图片路径的方法
May 11 #Javascript
js操作css属性实现div层展开关闭效果的方法
May 11 #Javascript
javascript中this的四种用法
May 11 #Javascript
JQuery插件jcarousellite的参数中文说明
May 11 #Javascript
javascript实现炫酷的拖动分页
May 11 #Javascript
You might like
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python__name__原理及用法详解
2019/11/02 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
亿企通软件测试面试题
2012/04/10 面试题
行政管理专业求职信
2014/07/06 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
八一建军节主持词
2015/07/01 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis