JavaScript—分步学做遮罩层弹出框
日期:2010-11-18作者:woniu
半透明遮罩弹出可拖动窗口是最常用的效果,你能写出来吗?
第一步 创建遮罩层:
HTML代码
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心js:
Example Source Code
//创建遮罩层
function AlertMsg(){
var sWidth,sHeight;
sWidth = window.screen.availWidth;
//屏幕可用工作区高度: window.screen.availHeight;
//屏幕可用工作区宽度: window.screen.availWidth;
//网页正文全文宽: document.body.scrollWidth;
//网页正文全文高: document.body.scrollHeight;
if(window.screen.availHeight > document.body.scrollHeight){ //当高度少于一屏
sHeight = window.screen.availHeight;
}else{//当高度大于一屏
sHeight = document.body.scrollHeight;
}
//创建遮罩背景
var maskObj = document.createElement("div");
maskObj.setAttribute('id','BigDiv');
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);
}
第二步:动态设置div的上边距和左边距,使弹出div居中打开
HTML代码
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心JS:
Example Source Code
var MyDiv =document.getElementById("MyDiv");
var MyDiv_w = getStyle(MyDiv,"width");
var MyDiv_h = getStyle(MyDiv,"height");
MyDiv_w = parseInt(MyDiv_w); //去掉 单位 "px"
MyDiv_h = parseInt(MyDiv_h);
var width = pageWidth();
var height = pageHeight();
var left = leftPosition();
var top = topPosition();
var Div_topposition = top + (height / 2) - (MyDiv_h / 2); //计算上边距
var Div_leftposition = left + (width / 2) - (MyDiv_w / 2); //计算左边距
MyDiv.style.left = Div_leftposition + "px"; //拼接上 单位"px"
MyDiv.style.top = Div_topposition + "px";
MyDiv.style.display = "block"; //设置弹出div显示
}
第三步:关闭窗口和遮罩层
HTML代码
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心js:
Example Source Code
function CloseDiv(){
var Bigdiv = document.getElementById("BigDiv");
var Mydiv = document.getElementById("MyDiv");
document.body.removeChild(Bigdiv);
Mydiv.style.display="none";
}
第四步:弹出层拖动 和 弹出层跟随滚动条滚动
HTML代码
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心js:
Example Source Code
/** 第四步:弹出层拖动。*/
window.onload = function(){
if(document.getElementById("MyDiv")){
var MyDiv = document.getElementById("MyDiv");
var dragMe = document.getElementById("dragMe");
Drag.init(dragMe, MyDiv);
}
}
/**第五步:弹出层跟随滚动条滚动。*/
window.onscroll = window_onscroll;
function window_onscroll(){
var MyDiv =document.getElementById("MyDiv");
var MyDiv_h = getStyle(MyDiv,"height");
MyDiv_h = parseInt(MyDiv_h);
var height = pageHeight();
var top = topPosition();
var Div_topposition = top + (height / 2) - (MyDiv_h / 2); //计算上边距
MyDiv.style.top = Div_topposition + "px";
}
第一步 创建遮罩层:
HTML代码[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心js:
Example Source Code //创建遮罩层
function AlertMsg(){
var sWidth,sHeight;
sWidth = window.screen.availWidth;
//屏幕可用工作区高度: window.screen.availHeight;
//屏幕可用工作区宽度: window.screen.availWidth;
//网页正文全文宽: document.body.scrollWidth;
//网页正文全文高: document.body.scrollHeight;
if(window.screen.availHeight > document.body.scrollHeight){ //当高度少于一屏
sHeight = window.screen.availHeight;
}else{//当高度大于一屏
sHeight = document.body.scrollHeight;
}
//创建遮罩背景
var maskObj = document.createElement("div");
maskObj.setAttribute('id','BigDiv');
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);
}
第二步:动态设置div的上边距和左边距,使弹出div居中打开
HTML代码[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心JS:
Example Source Code var MyDiv =document.getElementById("MyDiv");
var MyDiv_w = getStyle(MyDiv,"width");
var MyDiv_h = getStyle(MyDiv,"height");
MyDiv_w = parseInt(MyDiv_w); //去掉 单位 "px"
MyDiv_h = parseInt(MyDiv_h);
var width = pageWidth();
var height = pageHeight();
var left = leftPosition();
var top = topPosition();
var Div_topposition = top + (height / 2) - (MyDiv_h / 2); //计算上边距
var Div_leftposition = left + (width / 2) - (MyDiv_w / 2); //计算左边距
MyDiv.style.left = Div_leftposition + "px"; //拼接上 单位"px"
MyDiv.style.top = Div_topposition + "px";
MyDiv.style.display = "block"; //设置弹出div显示
}
第三步:关闭窗口和遮罩层
HTML代码[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心js:
Example Source Code function CloseDiv(){
var Bigdiv = document.getElementById("BigDiv");
var Mydiv = document.getElementById("MyDiv");
document.body.removeChild(Bigdiv);
Mydiv.style.display="none";
}
第四步:弹出层拖动 和 弹出层跟随滚动条滚动
HTML代码[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
核心js:
Example Source Code /** 第四步:弹出层拖动。*/
window.onload = function(){
if(document.getElementById("MyDiv")){
var MyDiv = document.getElementById("MyDiv");
var dragMe = document.getElementById("dragMe");
Drag.init(dragMe, MyDiv);
}
}
/**第五步:弹出层跟随滚动条滚动。*/
window.onscroll = window_onscroll;
function window_onscroll(){
var MyDiv =document.getElementById("MyDiv");
var MyDiv_h = getStyle(MyDiv,"height");
MyDiv_h = parseInt(MyDiv_h);
var height = pageHeight();
var top = topPosition();
var Div_topposition = top + (height / 2) - (MyDiv_h / 2); //计算上边距
MyDiv.style.top = Div_topposition + "px";
}
[本日志由 woniu 于 2012-01-07 01:34 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: javascript遮罩层JS弹出框
相关日志:
文章来自: 本站原创
Tags: javascript遮罩层JS弹出框
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
发表评论

上一篇
下一篇

回复
]