点击弹出div窗口式特效 代码预览

<!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=gb2312" />
<meta name="keywords" content="http://www.cnblogs.com/moxiaoyu/" />
<meta name="description" content="http://www.cnblogs.com/moxiaoyu/" />
<title>点击后弹出div窗口效果,xiaoyu整理收集。 </title>
<style type="text/css">
.mask{position: absolute;
top: 0px;
left: 0px;
filter: alpha(opacity=50);
-moz-opacity:0.5;
opacity:0.5;
background-color: #ffffff;
z-index: 2;
display: none;}
 /*  弹出基本资料div */
div.sample_popup {height:auto; border: 1px solid #327eca; width: 300px;  }
div.menu_form_header{
 background: url('/image/1.jpg') repeat-x;
}
div.sample_popup div.menu_form_header
{
  border-bottom: 0px;
  cursor: default;
   width:100%;
  height:      22px;
  line-height: 22px;
  vertical-align: middle;
  text-decoration: none;
  font-family: "Times New Roman", Serif;
  font-weight: 800;
  font-size: 13px;
  color: #206040;
}
div.menu_form_body
{
  width:100%;
  height:150px;
  font-size:12px;
  background-color:#f1f8fe;
}
div.sample_popup input.menu_form_exit
{
  float: right;
  margin: 4px 5px 0px 0px;
  cursor: pointer;
}
/*end:  弹出商品信息div */
    </style>
<script type="text/javascript">
/**************************************************
 * DivWindow.js
 **************************************************/
var DivWindow= function(popup/*最外层div id*/,popup_drag/*拖动div id*/,popup_exit/*退出按钮id*/ ,exitButton/*触发服务器端退出按钮id*/,varwidth,varheight,zindex){
 this.popup =popup ; //窗口名称
  this.popup_drag=popup_drag;
 this.height =varheight ; //窗口高度,并没用来设置窗口高度宽度,用来定位在屏幕的位置
 this.width =varwidth ; //窗口宽度
        this.popup_exit=popup_exit;
        this.exitButton=exitButton;
        this.zindex=zindex;
 this.init = function(){ //初始化窗口
  this.popupShow();
  this.startDrag(); //设置拖动
  this.setCommond(); //设置关闭
  DivWindow.ArrayW.push(document.getElementById(this.popup)); //存储窗口到数组
 };this.init();
};
//存储窗口到数组
DivWindow.ArrayW = new Array();
//字符串连接类
DivWindow.StringBuild = function(){
 this.arr = new Array();
 this.push = function(str){
  this.arr.push(str);
 };
 this.toString = function(){
  return this.arr.join("");
 };
};
//拖动类
DivWindow.Drag = function(o ,oRoot){
 var _self = this;
 //拖动对象
 this.obj = (typeof oRoot != "undefined") ?oRoot : o;
 this.relLeft = 0; //记录横坐标
 this.relTop = 0; //记录纵坐标
 o.onselectstart = function(){
  return false;
 };
 o.onmousedown = function(e){ //鼠标按下
  e = _self.fixE(e);
  _self.relLeft = e.clientX - _self.fixU(_self.obj.style.left);
  _self.relTop = e.clientY - _self.fixU(_self.obj.style.top);
  document.onmousemove = function(e){
   _self.drag(e);
   //_self.obj.style.border = "1px dashed #000000";
   //_self.obj.style.filter = "alpha(opacity=30)";
   //_self.obj.style.opacity = "0.3";
  };
  document.onmouseup  = function(){
   _self.end();
   //_self.obj.style.border = "1px solid #cccccc";
   //_self.obj.style.borderBottom = "2px solid #E0E0E0";
   //_self.obj.style.borderRight = "2px solid #E0E0E0";
   //_self.obj.style.filter = "alpha(opacity=100)";
   //_self.obj.style.opacity = "1";
  };
 };
 this.drag = function(e){ //拖动
  e = this.fixE(e);
  var l = e.clientX - this.relLeft;
  var t = e.clientY - this.relTop;
  if (t < 0)
  {
   t = 0; //防止头部消失
  }
  this.obj.style.left = l +"px";
  this.obj.style.top = t +"px";
 };
 this.end = function(){ //结束拖动
  document.onmousemove = null;
  document.onmouseup = null;
 };
 this.fixE = function(e){ //修复事件
  if (typeof e == "undefined") e = window.event;
  return e;
 };
 this.fixU = function(u){ //处理px单位
  return parseInt(u.split("p")[0]);
 };
};
//窗口拖动
DivWindow.prototype.startDrag = function(){
 var obj = document.getElementById(this.popup);
        var drag = document.getElementById(this.popup_drag);
 new DivWindow.Drag(drag,obj);
};
//设定窗口优先级
DivWindow.prototype.setTop = function(){
 document.getElementById(this.popup).onclick =
 document.getElementById(this.popup).onmousedown =
 function(){
  for(var i=0;i<DivWindow.ArrayW.length;i++)
  {
   DivWindow.ArrayW[i].style.zIndex = 1;
  }
  this.style.zIndex = 100;
 };
};
//显示
DivWindow.prototype.popupShow=function()
{       document.getElementById('mask').style.display="block";
        document.getElementById('mask').style.width=window.screen.width +20;
        document.getElementById('mask').style.height=window.screen.width +20;
        var  element      = document.getElementById(this.popup);
        element.style.position   = "absolute";
        element.style.visibility = "visible";
        element.style.display    = "block";
        element.style.width=this.width;
        element.style.height='auto';
        element.style.left = (window.screen.width - this.width)/2+"px";
        //element.style.top  =(window.screen.height-this.height-100)/2+"px";
         element.style.top  =20+"px";
        element.style.zIndex=this.zindex;
}
//设置关闭
DivWindow.prototype.setCommond = function(){
 var _self = this;
 //根对象
 var obj = document.getElementById(this.popup);
 var exit = document.getElementById(this.popup_exit);
 var triggServerEvent=document.getElementById(this.exitButton);

 //设置关闭
             exit.onclick = function(){
      obj.style.display = "none";
      obj.style.visibility = 'hidden';
                    document.all.mask.style.display='none'//关闭遮罩层
                    triggServerEvent.click();//触发服务器端退出事件
     };
};
</script>
</head>
<body>
<a href="<#ZC_BLOG_HOST#>">xiaoyu博客</a一些学习笔记。<hr>
<div>
 <input type="button"  id="show" onclick="javascript:new DivWindow('popup','popup_drag','popup_exit','exitButton','500','700',4);"  value='点击弹出窗口'   />
 <input type="button"  id="exitButton"   value="aaaa" />
</div>
  <!-- 遮罩层 -->
 <div id="mask"  class="mask">
 </div>
<!-- 弹出基本资料详细DIV层 -->
<div class="sample_popup"     id="popup" style="visibility: hidden; display: none;">
<div class="menu_form_header" id="popup_drag">
 <input type="button"  id="popup_exit" value="退出"
          />
小鱼博客,网址是:<a href="http://www.cnblogs.com/moxiaoyu/">http://www.cnblogs.com/moxiaoyu/</a>
</div>
<div class="menu_form_body" >
 <div id="popDetail">
  片区名称:<input type="button"  id="Button1" onclick="javascript:new DivWindow('Div1','Div2','exit2','exitButton','500','700',5);"  value='再次点击触发'   />
  

 </div>
</div>
</div>
<!-- 弹出基本资料详细DIV层 -->
<div class="sample_popup"     id="Div1" style="visibility: hidden; display: none;">
<div class="menu_form_header" id="Div2">
 <input type="button"  id="exit2" value="退出"
          />
</div>
<div class="menu_form_body" >
 <div id="Div3">
  小鱼博客:<a href="http://www.cnblogs.com/moxiaoyu/">http://www.cnblogs.com/moxiaoyu/</a>
温馨提示,这个窗口可以拖动
 </div>
</div>
</div>
</body>
</html>

posted on 2012-04-27 09:47  莫小鱼  阅读(1398)  评论(0编辑  收藏  举报

导航