1,声明变量:
 
var $browser=$(window);
var winWidth;
var winHeight;
   
var scrollLeft;
var scrollTop;
   
var left=0,top=0;
var $currentWin=$("div.win");//
弹出窗口
var clientWidth;
 var clientHeight;
2,定义方法 计算窗口居中的位置:
 
复制代码 代码示例:
function calPosition(){
  winWidth=$browser.width();
  winHeight=$browser.height();
       
  scrollLeft=$browser.scrollLeft();
  scrollTop=$browser.scrollTop();
       
  clientWidth=$currentWin.outerWidth();
  clientHeight=$currentWin.outerHeight();
   
  left=scrollLeft+(winWidth-clientWidth)/2;
  top=scrollTop+(winHeight-clientHeight)/2;       
}
3,定义方法显示窗口:
 
复制代码 代码示例:
function show(){
  $currentWin.animate({"left":left+"px","top":top+"px"},300).show();
    }
//给网页上的按钮绑定事件,点击时显示弹窗口和遮罩层
$("#btn").click(function(){
  calPosition();   
  show();
  $("#overlay").show();
});
4,给弹出窗口的关闭按钮绑定事件:
 
复制代码 代码示例:
$currentWin.find("h2>img").click(function(){       
  $currentWin.hide();
  $("#overlay").hide();//遮罩层
});
5,绑定滚动条事件,设置让鼠标离开滚动条后再计算窗口位置:
 
复制代码 代码示例:
var scrollTimeout;
    $browser.scroll(function(){         
  clearTimeout(scrollTimeout);
  scrollTimeout=setTimeout(function(){   
  if($currentWin.is(":animated")){
      $currentWin.stop(true);     
  }
  calPosition();         
  show();     
  },300);
});
6,浏览器窗口大小变化时,绑定事件计算窗口位置:
 
复制代码 代码示例:
$browser.resize(function(){
  calPosition();
  if($currentWin.is(":animated")){
      $currentWin.stop(true);
  }
  show();
});
有兴趣的朋友,亲自动手测试下,看看本例的效果如何,是否弹出了你想的居中效果呢?