js遮罩弹出层
1、链接单机事件
<a id="qqhm_open1" onclick=$("#qqhmsz_tb").show();$(this).hide();
单击出发事件,然后隐藏自己。
2、遮罩弹出层的应用(这是一个jsp完整代码)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>可移动的弹出框</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<style type="text/css">
<!--
* {
padding:0;
margin:0;
}
#upcontent {
list-style-position: outside;
list-style-image: none;
list-style-type: none;
}
#upcontent li {
font-size:12px;
color:#333;
line-height:150%;
}
#bodyL {
float:left;
width:84px;
margin-right:2px;
}
#tittleup {
font-size:14px;
font-weight:bold;
color:#000066;
padding-left:25px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #d0daec;
margin-bottom: 10px;
padding-bottom: 10px;
}
a.od {
float:right;
font-size:14px;
color: #CC0000;
text-decoration: none;
}
a.od:hover {
color:#FF0000;
}
#fd {
background:#EDF1F8;
border: 2px solid #849BCA;
margin-top:2px;
margin-left:2px;
float:left;
overflow:hidden;
position:absolute;
left:380px;
top:200px;
cursor:move;
float:left;/*filter:alpha(opacity=50);*/
z-index: 10;
}
.contentup
{
padding:20px;
}
}
-->
</style>
</head>
<body>
<a href="http://hi.baidu.com/521_yangyang/home" target="_blank">我的百度空间:"爱上小桥流水"</a>
<br/>
<div id="bodyL"> <a href="#" onclick = "show('fd',event);return false;"> [打开层] </a> </div>
<div id="fd" style="display:none;filter:alpha(opacity=100);opacity:1;">
<div class="contentup"> <a href="#" class="od" onclick = "closeed('fd');return false;"> 关 闭</a>
<div id="tittleup">小小的程序员</div>
<ul id="upcontent">
<li><span style='font-weight: bold; color:red;'>章鱼哥:</span> 你是做什么的呢? 是做销售代表、还是做软件开发呀</li>
<li><span style='font-weight: bold; color:green;'><span style='font-weight: bold; color:green;'>海绵宝宝:</span></span>做软件开发的,累着、乐着、还活着!你可有好的工作介绍下呢。</li>
<li><span style='font-weight: bold; color:red;'>章鱼哥:</span>兄弟,我也迷茫呀,如果你有好的路告诉我... </li>
</ul>
</div>
</div>
<script type="text/javascript">
var prox;
var proy;
var proxc;
var proyc;
var isIe=(document.all)?true:false; //是否是IE浏览器
function setSelectState(state)
{
var objl=document.getElementsByTagName('select');
for(var i=0;i<objl.length;i++)
{
objl[i].style.visibility=state;
}
}
function mousePosition(ev)
{
if(ev.pageX || ev.pageY)
{
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
//关闭窗口
function closeWindow()
{
if(document.getElementById('back')!=null)
{
document.getElementById('back').parentNode.removeChild(document.getElementById('back'));
}
if(document.getElementById('mesWindow')!=null)
{
document.getElementById('mesWindow').parentNode.removeChild(document.getElementById('mesWindow'));
}
if(isIe)
{
setSelectState('');
}
}
function show(id,ev){/*--打开--*/
closeWindow();
var bWidth=parseInt(document.documentElement.scrollWidth); //当前窗口的宽度
var bHeight=parseInt(document.documentElement.scrollHeight)<592?592:parseInt(document.documentElement.scrollHeight);
if(isIe)
{
setSelectState('hidden');
}
var back=document.createElement("div"); /*-- 创建遮罩层--*/
back.id="back";
var styleStr="top:0px;left:0px;position:absolute;background:#666;width:"+bWidth+"px;height:"+bHeight+"px;";
styleStr+=(isIe)?"filter:alpha(opacity=40);":"opacity:0.40;"; //遮罩样式透明度
back.style.cssText=styleStr;
document.body.appendChild(back);
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
o.style.display = "block";
o.style.width = "1px";
o.style.height = "1px";
prox = setInterval(function(){openx(o,500)},10);
}
function openx(o,x){/*--打开x--*/
var cx = parseInt(o.style.width);
if(cx < x)
{
o.style.width = (cx + Math.ceil((x-cx)/5)) +"px";
//o.style.width = (cx + 100) +"px";
}
else
{
clearInterval(prox);
proy = setInterval(function(){openy(o,200)},10); //200是弹出层的高度
}
}
function openy(o,y){/*--打开y--*/
var cy = parseInt(o.style.height);
if(cy < y)
{
o.style.height = (cy + Math.ceil((y-cy)/5)) +"px";
//o.style.height = (cy + 100) +"px";
}
else
{
clearInterval(proy);
}
}
function closeed(id){/*--关闭--*/
closeWindow();
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
if(o.style.display == "block")
{
proyc = setInterval(function(){closey(o)},10);
}
}
function closey(o){/*--打开y--*/ //实际上是关闭的特效动作
var cy = parseInt(o.style.height);
if(cy > 0)
{
o.style.height = (cy - Math.ceil(cy/5)) +"px"; //缩小之后在隐藏
}
else
{
clearInterval(proyc);
proxc = setInterval(function(){closex(o)},10);
}
}
function closex(o){/*--打开x--*/
var cx = parseInt(o.style.width);
if(cx > 0)
{
o.style.width = (cx - Math.ceil(cx/5)) +"px";
}
else
{
clearInterval(proxc);
o.style.display = "none"; //隐藏
}
}
/*-------------------------鼠标拖动---------------------*/
var od = document.getElementById("fd");
var dx,dy,mx,my,mouseD;
var odrag;
var isIE = document.all ? true : false;
document.onmousedown = function(e){
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))
{
mouseD = true;
}
}
document.onmouseup = function(){
mouseD = false;
odrag = "";
if(isIE)
{
od.releaseCapture();
od.filters.alpha.opacity = 100;
}
else
{
window.releaseEvents(od.MOUSEMOVE);
od.style.opacity = 1;
}
}
//function readyMove(e){
od.onmousedown = function(e){
odrag = this;
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))
{
mx = e.clientX;
my = e.clientY;
od.style.left = od.offsetLeft + "px";
od.style.top = od.offsetTop + "px";
if(isIE)
{
od.setCapture(); //releaseCapture与setCapture方法相反,释放鼠标监控
od.filters.alpha.opacity = 50;
}
else
{
window.captureEvents(Event.MOUSEMOVE);
od.style.opacity = 0.5;
}
}
}
document.onmousemove = function(e){
var e = e ? e : event;
if(mouseD==true && odrag)
{
var mrx = e.clientX - mx;
var mry = e.clientY - my;
od.style.left = parseInt(od.style.left) +mrx + "px";
od.style.top = parseInt(od.style.top) + mry + "px";
mx = e.clientX;
my = e.clientY;
}
}
function showBackground(obj,endInt)
{
obj.filters.alpha.opacity+=1;
if(obj.filters.alpha.opacity<endInt)
{
setTimeout(function()
{
showBackground(obj,endInt)},8);
}
}
</script>
</body>
</html>
<!--EndFragment-->