jQuery禁用身体的滚动,但不是子元素?

时间:2012-10-01 20:40:20

标签: jquery scroll parent-child

当我有一个弹出式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”的元素类,我怎么能接受呢?或者更好的是,我怎么能阻止事件影响身体标签以外的任何事情?

2 个答案:

答案 0 :(得分:0)

您可以查看此页

How to programmatically disable page scrolling with jQuery

我相信这个人想要同样的行为,我感觉Y滚动条可能会消失,但也许你可以为它找出一些东西或者只是总是显示它

答案 1 :(得分:0)

尝试将此添加到您的子元素

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

它将使body滚动条消失,直到mouse元素上的mouseout,否则会产生所需的效果。