Javascript - 滚动div而不是页面

时间:2014-06-25 15:52:40

标签: javascript jquery css scroll

我正在尝试设置一个页面,如果鼠标在div上方,只有div滚动,但如果鼠标在页面上,页面会滚动。

以下是类似的答案: Scroll div instead of page使用jsfiddle @ http://jsfiddle.net/pimvdb/Ezvnp/4/

然而,这"锁定"按钮会在页面锁定时停止滚动。我希望页面可以与div同时滚动,但是这样点击div的底部/顶部并不会开始滚动页面(如果这有意义的话)。

知道如何做到这一点好吗?我目前使用与jsfddle中相同的代码。

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

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

        return false;
    }
});

谢谢。

2 个答案:

答案 0 :(得分:1)

请参阅:http://jsfiddle.net/Ezvnp/104/

使用mouseentermouseleave事件检查div中的鼠标。它们可以执行与之前按钮相同的操作,切换锁定状态。

它们基本上是当鼠标进入和离开元素时触发的事件侦听器,您必须检查它们是否切换状态。

我不确定事件监听器是否是必要的,当我删除它仍然按照你想要的方式工作的所有javascript时,它可能只是一个浏览器的东西,但尝试评论所有的JavaScript,如果它工作我可以更新我对此部分的回答,以使其更有帮助。

答案 1 :(得分:0)

当然不需要任何JavaScript吗?浏览器默认以您希望的方式处理滚动div,请查看此jsfiddlehave to add code to post jsfiddle link :P