Javascript 滚动div而不是page

Javascript 滚动div而不是page,javascript,jquery,css,scroll,lightbox,Javascript,Jquery,Css,Scroll,Lightbox,我在一个网站上有一个类似于“查看源代码”按钮的灯箱。背景变暗,显示源代码,但仅当您将鼠标放在特定的div(或在本例中为pre)上时,才会滚动。例如,我希望能够将鼠标放在页面的上角并向下滚动,我希望主灯箱能够滚动。有很多代码,所以我使用了: overflow-x: hidden; overflow-y: scroll; 我确信它需要一些JavaScript或jQuery,但我不知道该放在哪里 当您向下滚动并单击“查看完整代码”时,它将处于打开状态 有什么想法吗?最直接的方法是: 要锁定/解锁滚动

我在一个网站上有一个类似于“查看源代码”按钮的灯箱。背景变暗,显示源代码,但仅当您将鼠标放在特定的
div
(或在本例中为
pre
)上时,才会滚动。例如,我希望能够将鼠标放在页面的上角并向下滚动,我希望主灯箱能够滚动。有很多代码,所以我使用了:

overflow-x: hidden;
overflow-y: scroll;
我确信它需要一些JavaScript或jQuery,但我不知道该放在哪里

当您向下滚动并单击“查看完整代码”时,它将处于打开状态


有什么想法吗?

最直接的方法是:

要锁定/解锁滚动,您可以使用一个变量,以便仅在该变量为
true
时锁定,例如:


最直接的方法是:

要锁定/解锁滚动,您可以使用一个变量,以便仅在该变量为
true
时锁定,例如:


太棒了!谢谢这是恢复正常的最好方法吗?$('body').bind('mousewheel',函数(e){$('body').scrollTop($('body').scrollTop()-e.originalEvent.wheelDelta);返回false;})@埃德·乌龟:就我个人而言,我不会这么说。不要做任何事,它会使用正常的行为。请看我的编辑。@Edd Turtle:我看你已经把代码很好地混合到你的网页中了。不过,我忘了说你不应该每次都把它绑起来。现在,每次打开代码时,它都会添加该函数,因此,当打开代码框两次时,滚动速度会加快一倍。相反,您可能希望在页面加载时只绑定函数一次,并且只在单击时更改
locked
。而且,不是
locked=!锁定
,您可能希望使用
locked=false
禁用它。太好了,没有注意到,现在更有意义了:)很遗憾,我意外地将网站恢复到了早期版本。。。Arrrighthis在Chrome中仍然可以完美地工作,但不幸的是在Firefox中似乎无法工作。任何关于如何使这项工作的建议将非常感谢!太棒了!谢谢这是恢复正常的最好方法吗?$('body').bind('mousewheel',函数(e){$('body').scrollTop($('body').scrollTop()-e.originalEvent.wheelDelta);返回false;})@埃德·乌龟:就我个人而言,我不会这么说。不要做任何事,它会使用正常的行为。请看我的编辑。@Edd Turtle:我看你已经把代码很好地混合到你的网页中了。不过,我忘了说你不应该每次都把它绑起来。现在,每次打开代码时,它都会添加该函数,因此,当打开代码框两次时,滚动速度会加快一倍。相反,您可能希望在页面加载时只绑定函数一次,并且只在单击时更改
locked
。而且,不是
locked=!锁定
,您可能希望使用
locked=false
禁用它。太好了,没有注意到,现在更有意义了:)很遗憾,我意外地将网站恢复到了早期版本。。。Arrrighthis在Chrome中仍然可以完美地工作,但不幸的是在Firefox中似乎无法工作。任何关于如何使这项工作的建议将非常感谢!
$('body').bind('mousewheel', function(e) { // on scroll
    var $div = $('div');

    // set div scroll top offset to current + extra from this scroll
    $div.scrollTop($div.scrollTop() 
                    - e.originalEvent.wheelDelta);

    return false; // prevent body scrolling
});
var locked = true;

$('body').bind('mousewheel', function(e) {
    if(locked) {
        var $div = $('div');

        $div.scrollTop($div.scrollTop() 
                        - e.originalEvent.wheelDelta);

        return false;
    }
});

$('button').click(function() {
    locked = !locked;
});