<div id=’"window"+id’></div> 控制背景的div,使背景逐渐变暗
<div id=’"windowTopBg"+id’>
<div id=’"windowTop"+id’>
<span id=’"windowTopTitle"+id’>title</span>
<span id=’"windowTopOperate"+id’>maxORmin</span>
<span id=’"windowTopClose"+id’>close</span>
</div>
<div id=’"windowContent"+id’>content</div>
</div>
@author Nieger Dai
@date 2007.11.15
*/
var isIe = (document.all)?true:false;
var moveable=false;
var topDivBorderColor = "#336699";//提示窗口的边框颜色
var topDivBgColor = "#6795B4";//提示窗口的标题的背景颜色
var contentBgColor = "white";//内容显示窗口的背景颜色
var contentFontColor = "black";//内容显示窗口字体颜色
var titleFontColor = "white"; //弹出窗口标题字体颜色
var index=10000;//z-index;
// 创建弹出窗口,构造函数
function DivWindow(id,title,w,h,content)
{
this.id = id;//窗口id
this.zIndex = index +2;
this.title = title;//弹出窗口名称
this.message = content;//弹出窗口内容
this.width = w;//弹出窗口宽度
this.height = h;//弹出窗口高度
this.left = (document.body.clientWidth) ? (document.body.clientWidth - this.width)/2 : 0;//弹出窗口位置,距屏幕左边的位置
this.top = (document.body.clientHeight) ? (document.body.clientHeight - this.height)/2 : 0;//弹出窗口位置,距屏幕上边的位置
//this.init = init;
//this.init();
}
//根据构造函数设定初始值,创建弹出窗口
DivWindow.prototype = {
//设置弹出窗口标题字体颜色
setPopupTopTitleFontColor:function(tFontColor)
{
titleFontColor = tFontColor;
},
//设置弹出窗口标题背景颜色
setPopupTopBgColor:function(tBgColor)
{
topDivBgColor = tBgColor;
},
//设置弹出窗口风格,包括标题栏的背景,弹出窗口边框颜色,内容窗体背景颜色,内容窗体字体颜色
setPopupColor:function(borderColor,bgColor,tFontColor,cBgColor,fColor)
{
topDivBorderColor = borderColor;
topDivBgColor = bgColor;
titleFontColor = tFontColor;
contentBgColor = cBgColor;
contentFontColor = fColor;
},
//打开一个弹出窗口
open: function()
{
var sWidth,sHeight;
sWidth=document.body.clientWidth;
sHeight=document.body.clientHeight;
var bgObj=document.createElement("div");
bgObj.setAttribute(’id’,’window’+this.id);
var styleStr="top:0px;left:0px;position:absolute;background:#245;width:"+sWidth+"px;height:"+sHeight+"px;";
styleStr+=(isIe)?"filter:alpha(opacity=0);":"opacity:0;";
bgObj.style.cssText=styleStr;
document.body.appendChild(bgObj);
//让背景逐渐变暗
showBackground(bgObj,25);
// 弹出窗口框体背景容器
var windowTopBgDiv = document.createElement("div");
windowTopBgDiv.setAttribute(’id’,’windowTopBg’+this.id);
windowTopBgDiv.style.position = "absolute";
windowTopBgDiv.style.zIndex = this.zIndex ;
windowTopBgDiv.style.width = this.width ;
windowTopBgDiv.style.height = this.height;
windowTopBgDiv.style.left = this.left;
windowTopBgDiv.style.top = this.top;
windowTopBgDiv.style.background = topDivBgColor;
windowTopBgDiv.style.fontSize = "9pt";
windowTopBgDiv.style.cursor = "default";
windowTopBgDiv.style.border = "1px solid " + topDivBorderColor;
windowTopBgDiv.attachEvent("onmousedown",function(){
if(windowTopBgDiv.style.zIndex!=index)
{
index = index + 2;
var idx = index;
windowTopBgDiv.style.zIndex=idx;
}
});
// 弹出窗口头部框体
var windowTopDiv = document.createElement("div");
windowTopDiv.setAttribute(’id’,’windowTop’+this.id);
windowTopDiv.style.position = "absolute";
windowTopDiv.style.background = topDivBgColor;//"white";
windowTopDiv.style.color = titleFontColor;
windowTopDiv.style.cursor = "move";
windowTopDiv.style.height = 20;
windowTopDiv.style.width = this.width-2*2;
//开始拖动;
windowTopDiv.attachEvent("onmousedown",function(){
if(event.button==1)
{
//锁定标题栏;
windowTopDiv.setCapture();
//定义对象;
var win = windowTopDiv.parentNode;
//记录鼠标和层位置;
x0 = event.clientX;
y0 = event.clientY;
x1 = parseInt(win.style.left);
y1 = parseInt(win.style.top);
//记录颜色;
//topDivBgColor = windowTopDiv.style.backgroundColor;
//改变风格;
//windowTopDiv.style.backgroundColor = topDivBorderColor;
win.style.borderColor = topDivBorderColor;
moveable = true;
}
});
//停止拖动
windowTopDiv.attachEvent("onmouseup",function(){
if(moveable)
{
var win = windowTopDiv.parentNode;
win.style.borderColor = topDivBgColor;
windowTopDiv.style.backgroundColor = topDivBgColor;
windowTopDiv.releaseCapture();
moveable = false;
}
});
// 开始拖动
windowTopDiv.attachEvent("onmousemove",function(){
if(moveable)
{
var win = windowTopDiv.parentNode;
win.style.left = x1 + event.clientX - x0;
win.style.top = y1 + event.clientY - y0;
}
});
// 双击弹出窗口
windowTopDiv.attachEvent("ondblclick",function(){
maxOrMinPopupDiv(windowTopOperateSpan,windowContentDiv);
});
//增加一个弹出窗口标题的显示
var windowTopTitleSpan = document.createElement("span");
windowTopTitleSpan.setAttribute(’id’,’windowTopTitle’+this.id);
windowTopTitleSpan.style.width = this.width-2*12-4;
windowTopTitleSpan.style.paddingLeft = "3px";
windowTopTitleSpan.innerHTML = this.title;
//增加一个弹出窗口最小化,最大化的操作
var windowTopOperateSpan = document.createElement("span");
windowTopOperateSpan.setAttribute(’id’,’windowTopOperate’+this.id);
windowTopOperateSpan.style.width = 12;
windowTopOperateSpan.style.borderWidth = "0px";
windowTopOperateSpan.style.color = titleFontColor;//"white";
windowTopOperateSpan.style.fontFamily = "webdings";
windowTopOperateSpan.style.cursor = "default";
windowTopOperateSpan.innerHTML = "0";
//最大化或者最小化弹出窗口操作
windowTopOperateSpan.attachEvent("onclick",function(){
maxOrMinPopupDiv(windowTopOperateSpan,windowContentDiv);
});
//增加一个弹出窗口关闭的操作
var windowTopCloseSpan = document.createElement("span");
windowTopCloseSpan.setAttribute(’id’,’windowTopClose’+this.id);
windowTopCloseSpan.style.width = 12;
windowTopCloseSpan.style.borderWidth = "0px";
windowTopCloseSpan.style.color = titleFontColor;//"white";
windowTopCloseSpan.style.fontFamily = "webdings";
windowTopCloseSpan.style.cursor = "default";
windowTopCloseSpan.innerHTML = "r";
// 关闭窗口
windowTopCloseSpan.attachEvent("onclick",function(){
windowTopDiv.removeChild(windowTopTitleSpan);
windowTopDiv.removeChild(windowTopOperateSpan);
windowTopDiv.removeChild(windowTopCloseSpan);
windowTopBgDiv.removeChild(windowTopDiv);
windowTopBgDiv.removeChild(windowContentDiv);
document.body.removeChild(windowTopBgDiv);
document.body.removeChild(bgObj);
});
// 内容
var windowContentDiv = document.createElement("div");
windowContentDiv.setAttribute(’id’,’windowContent’+this.id);
windowContentDiv.style.background = contentBgColor;
windowContentDiv.style.color = contentFontColor;
windowContentDiv.style.cursor = "default";
windowContentDiv.style.height = (this.height - 20 - 4);
windowContentDiv.style.width = "100%";
windowContentDiv.style.position = "relative";
windowContentDiv.style.left = 0;
windowContentDiv.style.top = 24;
windowContentDiv.style.lineHeight = "20px";
windowContentDiv.style.fontSize = "10pt";
windowContentDiv.style.wordBreak = "break-all";
windowContentDiv.style.padding = "3px";
windowContentDiv.innerHTML = this.message;
//将内容写入到文件中
windowTopDiv.appendChild(windowTopTitleSpan);
windowTopDiv.appendChild(windowTopOperateSpan);
windowTopDiv.appendChild(windowTopCloseSpan);
windowTopBgDiv.appendChild(windowTopDiv);
windowTopBgDiv.appendChild(windowContentDiv);
document.body.appendChild(windowTopBgDiv);
}
}
//最大或者最小化探出窗口
function maxOrMinPopupDiv(windowTopOperateSpan,windowContentDiv)
{
var win = windowTopOperateSpan.parentNode.parentNode;
var tit = windowTopOperateSpan.parentNode;
var flg = windowContentDiv.style.display=="none";
if(flg)
{
win.style.height = parseInt(windowContentDiv.style.height) + parseInt(tit.style.height) + 2*2;
windowContentDiv.style.display = "block";
windowTopOperateSpan.innerHTML = "0";
}
else
{
win.style.height = parseInt(tit.style.height) + 2*2;
windowTopOperateSpan.innerHTML = "2";
windowContentDiv.style.display = "none";
}
}
//让背景渐渐变暗
function showBackground(obj,endInt)
{
if(isIe)
{
obj.filters.alpha.opacity+=1;
if(obj.filters.alpha.opacity<endInt)
{
setTimeout(function(){this.showBackground(obj,endInt)},5);
}
}
else
{
var al=parseFloat(obj.style.opacity);al+=0.01;
obj.style.opacity=al;
if(al<(endInt/100))
{
setTimeout(function(){this.showBackground(obj,endInt)},5);
}
}
}
//关闭弹出窗口
function closeDivWindow(id)
{
var windowTopTitleSpan = document.getElementById("windowTopTitle"+id);
var windowTopOperateSpan = document.getElementById("windowTopOperate"+id);
var windowTopCloseSpan = document.getElementById("windowTopClose"+id);
var windowTopDiv = document.getElementById("windowTop"+id);
var windowTopBgDiv = document.getElementById("windowTopBg"+id);
var windowContentDiv = document.getElementById("windowContent"+id);
var bgObj = document.getElementById("window"+id);
windowTopDiv.removeChild(windowTopTitleSpan);
windowTopDiv.removeChild(windowTopOperateSpan);
windowTopDiv.removeChild(windowTopCloseSpan);
windowTopBgDiv.removeChild(windowTopDiv);
windowTopBgDiv.removeChild(windowContentDiv);
document.body.removeChild(windowTopBgDiv);
document.body.removeChild(bgObj);
}
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>alertWindow test</title>
<script language=”javascript”>
function alertWin(title, msg, w, h){
var s=document.getElementsByTagName(“select”); //获取所有的select标签
for(var j=0;j<s.length;j++){s[j].style.display=”none”;} //因为在IE里的下拉菜单在弹出层中的是不会透明的,所以先把它设为不显示,再进行下面操作
var titleheight = “22px”; // 提示窗口标题高度
var bordercolor = “#666699″; // 提示窗口的边框颜色
var titlecolor = “#FFFFFF”; // 提示窗口的标题颜色
var titlebgcolor = “#666699″; // 提示窗口的标题背景色
var bgcolor = “#FFFFFF”; // 提示内容的背景色
var iWidth = document.documentElement.clientWidth; // 获取网页可见区域宽
var iHeight = document.documentElement.clientHeight; // 获取网页可见区域高
var bgObj = document.createElement(“div”); // 新建一个DIV,作为弹出层的背景
bgObj.style.cssText = “position:absolute;left:0px;top:0px;width:”+iWidth+”px;height:”+Math.max(document.body.clientHeight, iHeight)+”px;filter:Alpha(Opacity=30);opacity:0.3;background-color:#000000;z-index:101;”; // 为新建的DIV设置样式
document.body.appendChild(bgObj); // 把新建的DIV放在BODY中
var msgObj=document.createElement(“div”); // 再新建一个DIV,作为弹出的对话窗口
msgObj.style.cssText = “position:absolute;font:11px ‘宋体’;top:”+(iHeight-h)/2+”px;left:”+ (iWidth-w)/2+”px;width:”+w+”px;height:”+h+”px;text-align:center;border:1px solid “+bordercolor+”;background-color:”+bgcolor+”;padding:1px;line-height:22px;z-index:102;”; // 为新建的DIV设置样式
document.body.appendChild(msgObj); // 把新建的DIV也放到BODY中
var table = document.createElement(“table”); // 新建一个TBALE
msgObj.appendChild(table); // 把新建的TABLE放到弹出窗口的DIV中
table.style.cssText = “margin:0px;border:0px;padding:0px;”; // 为其设置样式
table.cellSpacing = 0; // 为新建的TABLE设置单元距离
var tr = table.insertRow(-1); // 在TABLE中插入一行
var titleBar = tr.insertCell(-1); // 在一行中插入一列
titleBar.style.cssText = “width:100%;height:”+titleheight+”px;text-align:left;padding:3px;margin: 0px;font:bold 13px ‘宋体’;color:”+titlecolor+”;border:1px solid ” + bordercolor + “;cursor:move;background-color:” + titlebgcolor; // 为第一列设置样式
titleBar.style.paddingLeft = “10px”; // 设置样式
titleBar.innerHTML = title; // 为第一列填充文字
var moveX = 0;
var moveY = 0;
var moveTop = 0;
var moveLeft = 0;
var moveable = false;
var docMouseMoveEvent = document.onmousemove; // 把未定义的鼠标移动事件放在一个变量中,为事件还原作准备
var docMouseUpEvent = document.onmouseup; // 把未定义的鼠标释放事件放在一个变量中,为事件还原作准备
titleBar.onmousedown = function() { // 首先定义鼠标按下的事件
var evt = getEvent(); // 获得事件对象
moveable = true; // 设置是否可移动弹出框
moveX = evt.clientX;
moveY = evt.clientY;
moveTop = parseInt(msgObj.style.top); // 获取弹出框上边的位置
moveLeft = parseInt(msgObj.style.left); // 获取弹出框左边的位置
document.onmousemove = function() { // 在鼠标按下的事件中再定义鼠标移动的事件
if (moveable) {
var evt = getEvent();
var x = moveLeft + evt.clientX – moveX; // 计算相对左边移动的操作=当前弹出框左边的位置+鼠标移动到的位置-鼠标按下的位置
var y = moveTop + evt.clientY – moveY; // 计算相对上边移动的操作=当前弹出框上边的位置+鼠标移动到的位置-鼠标按下的位置
if ( x > 0 &&( x + w < iWidth) && y > 0 && (y + h < iHeight) ) { // 当鼠标有移动并且移动的位置在可视页面内,就执行操作
msgObj.style.left = x + “px”; // 把弹出框定位在相对左边的位置
msgObj.style.top = y + “px”; // 把弹出框定位在相对上边的位置
}
}
};
document.onmouseup = function () { // 定义释放鼠标的事件
if (moveable) {
document.onmousemove = docMouseMoveEvent;
document.onmouseup = docMouseUpEvent;
moveable = false;
moveX = 0;
moveY = 0;
moveTop = 0;
moveLeft = 0;
}
};
}
var closeBtn = tr.insertCell(-1); // 在TABLE第一行插入第二列
closeBtn.style.cssText = “cursor:pointer; padding:2px;background-color:” + titlebgcolor; // 为新列设置样式
closeBtn.innerHTML = “<span style=’font-size:15pt; color:”+titlecolor+”;’>×</span>”; // 在新列中填充内容
closeBtn.onclick = function(){ // 为关闭按钮设置点击事件
for(var j=0;j<s.length;j++){s[j].style.display=”";} // 先把隐藏的下拉菜单显示出来
document.body.removeChild(bgObj); // 移除背景DIV
document.body.removeChild(msgObj); // 移除弹出框DIV
}
var msgBox = table.insertRow(-1).insertCell(-1); // 在TABLE中插入第二行
msgBox.style.cssText = “font:10pt ‘宋体’;”; // 设置样式
msgBox.colSpan = 2; // 合并两列
msgBox.innerHTML = msg; // 为插入的行填充内容
// 获取事件Event对象,用于兼容IE和FireFox
function getEvent() {
return window.event || arguments.callee.caller.arguments[0];
}
}
</script>
</head>
<body>
<input type=”button” value=”点这里”
onclick=”alertWin(‘标题’,'这里是内容’,300,200);” />
<select>
<option>兼容浏览器FF</opation>
<option>兼容浏览器IE</opation>
<option>兼容浏览器SF</opation>
</select>
</body>
</html>
- 大小: 103 KB
- 大小: 101.6 KB
分享到:
相关推荐
在"jQuery顶部浮动弹出层动画弹出层特效"这个主题中,我们将深入探讨如何利用jQuery来创建动态、吸引人的弹出层效果,特别是在页面顶部浮动的设计。 首先,让我们了解什么是弹出层。弹出层是一种网页设计技术,它...
在IT领域,弹出层(通常称为Modal窗口或Dialog)是一种常见的用户界面设计元素,用于在用户当前操作的页面上显示额外的信息或者进行特定的交互。"弹出层2"可能是一个专门设计的插件,它允许开发者创建并管理多个同时...
而“jQuery 弹出层”是 jQuery 应用中的一个重要功能,它允许开发者创建各种类型的弹出对话框,如模态框、提示框、信息窗口等,以提供更丰富的用户体验。在网页上,弹出层通常用于显示额外的信息、用户确认、表单...
在现代Web开发中,实现弹出层全屏展示以及关闭方法是提升用户交互体验的重要技术之一。layer是一款轻量级的页面弹出层插件,它提供了非常方便的方式来实现弹出层的全屏展示以及关闭操作。以下是layer弹出层全屏及...
在本文中,我们将深入探讨如何在layui框架中利用弹出层(layer)进行回调操作,以便获取弹出层内的数据。layui是一个轻量级、模块化的前端UI框架,提供了丰富的组件,包括弹出层功能,使得用户交互变得更加便捷。在...
标题“弹出层居中”涉及的是网页设计中常见的用户界面元素布局问题,特别是使用JavaScript库如jQuery实现的弹出窗口或对话框的居中显示。在这个场景中,"TestJQueryMaskLayer"可能是一个使用jQuery实现的遮罩层插件...
在JavaScript中,弹出层通常指的是通过编程方式在网页上动态创建或显示一个浮动的div元素,用于展示信息、提示用户或收集用户输入。这种技术广泛应用于网页交互设计,尤其在不需要新窗口或完全刷新页面的情况下。在...
在.NET开发中,弹出层通常用于在用户与网页交互时提供信息提示、确认操作或者展示详细内容。这种效果能够增强用户体验,使页面看起来更加专业和美观。在本例中,我们将探讨如何在.NET环境中创建具有多层显示、包含...
《jQuery+CSS3多功能弹出层插件v2.0.1详解》 在Web开发中,弹出层(也称为对话框或模态窗口)是不可或缺的元素,它们用于显示重要的信息、提示用户确认操作或者提供交互式内容。本文将深入探讨一款名为“20种弹出层...
《jQuery弹出层技术详解与应用实践》 在网页开发中,用户交互体验的重要性日益凸显,其中弹出层(Popup Layer)作为一种常见的交互元素,被广泛应用于提示信息、表单填写、图片预览等场景。jQuery,作为JavaScript...
本文将深入探讨“百度地图个性化弹出层和地图颜色”这一主题,旨在帮助开发者更好地利用百度地图API来创建独特且引人入胜的用户体验。 首先,让我们了解“百度地图个性化弹出层”。弹出层,也称为信息窗口或气泡,...
在IT领域,尤其是在Web开发中,"jquery弹出层不关闭 父页面刷新"是一个常见的交互需求。这里,我们主要讨论如何使用jQuery实现这样的功能,即在一个弹出层(通常是一个模态对话框)显示时,用户可以操作父页面而不会...
标题中的“很犀利的弹出层,弹出层代码”暗示我们将探讨一种高效且实用的弹出层实现方法。 弹出层的核心在于JavaScript和CSS的结合使用。JavaScript用于控制弹出层的显示、隐藏以及与用户的交互,而CSS则负责样式...
标题“jquery弹出层”暗示我们将会探讨的是如何使用jQuery来实现网页上的弹出层效果,这在网页设计中是非常常见的一种功能,用于显示警告、信息、确认对话框或者复杂的模态窗口。 首先,让我们理解什么是弹出层。弹...
在这个“DIV弹出层+定位”的例子中,我们关注的是如何利用`DIV`来创建一个可滑动的弹出层,并且使其在页面上保持固定的位置。这种功能通常用于显示提示信息、模态对话框或者加载额外的内容。 首先,`DIV弹出层`是指...
在网页设计和开发中,用户交互的一个常见场景是通过弹出层(modal)表单来收集数据。这种设计模式能够提供一种不打断整体用户体验的方式来获取信息,如注册、登录、编辑或确认操作。本文将详细讲解如何实现弹出层...
弹出层(通常称为弹窗或模态框)是在网页上创建的一个半透明或者全屏覆盖的独立区域,当用户触发特定事件(如点击按钮)时,这个区域会突然出现,吸引用户的注意力。在移动设备上,弹出层的设计需要考虑到屏幕大小和...
**jQuery弹出层插件SexyLightBox详解** 在网页设计中,弹出层是一种常见的交互元素,用于在用户点击某个链接或按钮时显示一个浮动窗口,通常用来展示图片、视频或者详细信息。SexyLightBox是一款基于jQuery的弹出层...
"images"文件夹则包含弹出层可能用到的图片资源,如关闭按钮、阴影效果等,这些图片对提升弹出层的视觉效果至关重要。 综上所述,这个压缩包提供的是一套完整的HTML弹出层解决方案,结合了jQuery和自定义的...
在网页中,弹出层(通常称为弹窗或提示框)是用户界面设计中常见的元素,用于显示警告、确认信息、输入数据或其他交互功能。本文将深入探讨JS弹出层的实现原理及其应用。 弹出层的基本概念是创建一个在用户与网页...