4

当我有一个弹出 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”的元素类,我怎么能接受呢?或者更好的是,我怎样才能阻止事件影响除正文标签之外的任何内容?

4

2 回答 2

0

你可以看看这个页面

如何使用 jQuery 以编程方式禁用页面滚动

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

于 2012-10-02T18:11:39.543 回答
0

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

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

它将使主体滚动条消失,直到子元素上的鼠标悬停,但否则会产生预期的效果。

于 2013-10-16T16:14:51.543 回答