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 相关文章推荐
jQuery中的常用事件总结
Dec 27 Javascript
jquery遍历数组与筛选数组的方法
Nov 05 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
javascript的BOM汇总
Jul 16 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
javascript实现拖放效果
Dec 16 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
浅谈JavaScript中this的指向更改
Jul 28 Javascript
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
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中日期加减法运算实现代码
2011/12/08 PHP
php中__toString()方法用法示例
2016/12/07 PHP
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
Python unittest模块用法实例分析
2018/05/25 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
python文字转语音的实例代码分析
2019/11/12 Python
基于python的列表list和集合set操作
2019/11/24 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
Python 多进程原理及实现
2020/12/21 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
财务会计人员岗位职责
2013/11/30 职场文书
干部行政关系介绍信
2014/01/17 职场文书
企业元宵节主持词
2014/03/25 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
Python基础之pandas数据合并
2021/04/27 Python
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS
分享7个 Python 实战项目练习
2022/03/03 Python