移动端如何禁用底层的滚动事件,保证弹出层的滚动事件正常运行

5 篇文章 0 订阅

今天做移动端项目时遇到的一个问题,带来了不少麻烦。

pc端的常用方法是 

$('body').css({
    overflow: 'hidden',
    height: $(window).height() + 'px'
})
// 因为body的高度等于了window的高度,所以滚动自然就无法进行了,如果需要滚动了,只需要把高度从style标签上面移除就好了
但在移动端是不生效的,这个也是大家说的滚动穿透问题:

百度了很多大神的Demo终于会走到解决方法:下面是个人项目部分代码

-----------css------------

.modal-open{
    position: fixed;
    width: 100%;
}
-------------js-----------

 //产品弹出详情页
    $('.pro').each(function () {
//        console.log(this);
        $(this).on('click', function () {
            $('#maskbody').fadeIn();
            scrollTop = document.scrollingElement.scrollTop;
            $('body').addClass('modal-open');
            document.body.style.top = -scrollTop + 'px';
        });
    });
    $('#colse').on('click',function () {
        $('#maskbody').fadeOut();
       $('body').removeClass('modal-open');
        document.scrollingElement.scrollTop = scrollTop;
    })

更多可以参考一下链接:

https://uedsky.com/demo/modal-scroll.html


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值