效果:

 初始状态时滚动条是可以滚动的

弹出层出现之后:1、弹窗始终居于整个窗口的中间 2、滚动条不可滚动

 

实现代码: 

HTML代码:

<div class="container">
  <input type="button" value="点击" class="btn1">
  <div class="overlay"></div>
  <div class="mask">
    <a href="javascript:;" class="close">×</a>
  </div>
</div>

 

CSS代码:

.container{width:1000px; height: 1200px; border: 1px solid #F00; position: relative; margin: 0 auto;}
.btn1{width:100px; height: 40px; font-size: 20px; position: absolute;; left: 450px; bottom: 10px;}
.overlay{width:100%; height: 100%; position: fixed; left: 0; right: 0; top: 0; background: #000; opacity: 0.8; z-index: 1; display: none;}
.mask{width: 500px; height: 400px; background: #09F; position: absolute; left: 250px; z-index: 2; display: none;}
.close{width:50px; height: 50px; line-height: 50px; text-align: center; font-size: 30px; position: absolute;; top: 0; right: 0; color:#FFF; text-decoration:none;}

 

js代码:

<script src="jquery-1.9.1.min.js"></script>

<script>
$(function(){

  //出现弹窗
  $('.btn1').click(function(){
    $('.overlay').show();
    $('.mask').show();

    //禁掉滚动条
    $('body').css('overflow','hidden');

    //弹窗于整个窗口垂直居中
    $('.mask').css('top',($(window).height()-$('.mask').height())/2+$(document).scrollTop()+'px');
  });

  //关闭弹窗
  $('.close').click(function(){
    $('.overlay').hide();
    $('.mask').hide();
    $('body').css('overflow','auto');
  });
});
</script>

posted on 2016-04-14 10:51  banzhiyan304053078  阅读(169)  评论(0编辑  收藏  举报