先定义两个方法,分别是禁止滚动和恢复滚动的方法
var save_scorll;//记录滚动条滚动的值
//打开显示层方法 doc1表示弹出层的标签名 doc2表示弹出层里面最外层内容的标签名
function show_mark(doc1,doc2){
var scorll_ = document.body.scrollTop || document.documentElement.scrollTop; //js获取滚动高度
save_scorll = scorll_; //保存
var clientHeight_ = document.documentElement.clientHeight;// 网页工作区域的高度和宽度
$(doc1).removeClass("mark_hide");
$(doc1).css({"height":clientHeight_,"top":scorll_});
$(doc2).slideDown();
set_noSliding(scorll_);
}
//关闭弹出层方法 doc1表示弹出层的标签名 doc2表示弹出层里面最外层内容的标签名
function close_mark(doc1,doc2){
$(doc2).slideUp(function(){
$(doc1).addClass("mark_hide");
set_sliding(save_scorll);
})
}
然后在点击要打开的弹出层方法中调用show()方法,并传入滚动条滚动的值scroll_
//弹出层打开后禁止页面滚动
function set_noSliding(scorll_){
$("html,body").css({
'position':'fixed',
'width':'100%',
'height':'100%',
'top':'-'+scorll_+'px'
})
}
//弹出层关闭后恢复页面滚动
function set_sliding(save_scorll){
$("html,body").css({
'position':'static',
'width':'100%',
'height':'100%',
'top':'initial'
});
$(window).scrollTop(save_scorll); //恢复滚动位置
}
版权声明:本文为qq_41981057原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。