css遮罩层上面的弹框里面的内容可以滑动,外面的页面不可以滑动保持之前滑动的位置不变

本文介绍如何在移动端创建一个弹框,使得弹框内可滑动,但遮罩层外的页面保持在之前的滚动位置。通过CSS和jQuery实现弹框及遮罩层样式,并在打开和关闭弹框时保存并恢复页面滚动位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近做手机端用到了一个弹框里面的滑动,就是点弹框时外面一层的位置保持在之前滑动的位置,点取消滑动时恢复到之前滚动的位置

不断地积累

废话不多说啦。直接来看张图吧?
这里写图片描述

现在开始撸代码啦!
css部分:
.ruleBg{display: none}
.ruleMask{
z-index:99;
background: rgba(0, 0, 0, 0.54);
top:0;
left: 0;
width: 100%;
height: 100%;
}//这是遮罩层
.ruleContent{
position: fixed;
width:628px;
height:780px;
background: #fff;top:calc((100% - 780px)/2);
left:calc((100% - 628px)/2);
border-radius: 10px
}//这是弹框
jq部分:
获取到此时的滚动的距离是多少: var scroll=0;
当打开遮罩层和弹框时
function ruleOpen(e){
(.ruleBg).show();scroll=(window).scrollTop();
$(‘html’).css({‘overflow’:’hidden’,’position’:’fixed’,’top’:’- ‘+scroll+’px’})
获取到里面的top值。和让html不滑动
}
当关闭遮罩层和弹框时:
function ruleColse(){
(.ruleBg).hide();(‘html’).css({‘overflow’:’auto’,’position’:’static’});
$(window).scrollTop(scroll);
让html恢复可以滑动。并且恢复到弹框之前的滚动的距离
}

好啦。我的分享就到这里结束啦。希望可以帮助到大家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值