页面滑动长弹窗,如何阻止页面滚动?

本文介绍了一种解决页面中长弹窗与背景滚动冲突的方法。通过使用 JavaScript 的 fixed 定位技巧,当弹窗出现时,阻止背景跟随滑动,从而改善用户体验。

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

当页面弹层内容过长(如规则弹窗),手动滑动时,经常是滚动页面内容,而非弹层内容,这种情况的用户交互不是太友好。

解决办法:

当弹出弹层时,手动将页面定住,禁止滚动。

首先想到的就是 “fixed”:

function stopMove() {
    // 滑动长弹窗时,阻止背景跟随滑动
    var top = -$(window).scrollTop();
    $('body').css({
        'position': 'fixed'
    })
    setTimeout(function () {
        $('body').css({
            'top': top + 'px'
        })
    }, 10)
}

关闭弹窗时,再恢复:

function recoMove() {
    // 长弹窗隐藏时,恢复页面默认样式
    var top = parseInt(-$('body').css('top').replace('px', ''));
    $('body').css({
        'position': 'relative',
        'top': '0'
    })
    $(window).scrollTop(top);
}

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端卡卡西呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值