如何使用jQuery禁用body而不是子元素的滚动?

23c0lvtd  于 11个月前  发布在  jQuery
关注(0)|答案(2)|浏览(97)

当我有一个弹出的div时,我想禁用主体滚动(比如照片库查看器之类的),但是我不想为子元素禁用滚动。
我现在正在使用这个,它禁用了所有的卷轴:

$('body').bind('mousewheel DOMMouseScroll', function(e) {
    var scrollTo = null;

    if (e.type == 'mousewheel') {
        scrollTo = (e.originalEvent.wheelDelta * -1);
    }
    else if (e.type == 'DOMMouseScroll') {
        scrollTo = 40 * e.originalEvent.detail;
    }

    if (scrollTo) {
        e.preventDefault();
        $(this).scrollTop(scrollTo + $(this).scrollTop());
    }
});

字符串
所以如果我有一个名为“popup”的元素类,我怎么能接受呢?或者更好的是,我怎么能阻止事件影响body标记以外的任何东西呢?

w8biq8rn

w8biq8rn1#

你可以看一下这一页
How to programmatically disable page scrolling with jQuery
我相信这个人想要同样的行为,我有一种感觉,Y滚动条可能会消失,但也许你可以想出一些东西,或者只是总是显示它

e4eetjau

e4eetjau2#

尝试将其添加到子元素中

onmouseover="document.body.style.overflow='hidden';" 
onmouseout="document.body.style.overflow='auto';"

字符串
它将使主体滚动条消失,直到鼠标在子元素上退出,但在其他情况下具有所需的效果。

相关问题