当鼠标位于子可滚动HTML元素上时,如何使用鼠标滚轮移动父滚动条?

时间:2014-07-24 08:46:27

标签: javascript jquery html css

我有以下问题。我有父div,其中包含几个子div。父母和孩子都有滚动条。当我的鼠标悬停在该元素上时,我想只移动父项的滚动条,无论鼠标悬停在可滚动的子div还是不要。换句话说,我想阻止对子事件的事件处理并将事件传播给父事件。像这样:

<div id='parent' style='overflow-y:auto;height:200px;width:100%'>
    <div class='child' style='overflow-y:auto;height:100px'>
    </div>
    <div class='child' style='overflow-y:auto;height:100px'>
    </div>
    <div class='child' style='overflow-y:auto;height:100px'>
    </div>
</div>

<script>
    $('.child').bind('mousewheel DOMMouseScroll', function(e) {
        $(e.target).parent().trigger(e);
    });
</script>

注意:允许使用jQuery。

1 个答案:

答案 0 :(得分:1)

感谢@DavidFregoli:

,这是正确的解决方案
$('.child').on('mousewheel DOMMouseScroll', function(e) {
    var $div = $(this),
    $parent = $div.parent(),
    scrollAmount = 30,
    currentScroll = $parent.scrollTop(),
    newScroll = currentScroll + (e.originalEvent.wheelDelta < 0 ? scrollAmount : -scrollAmount);
    $parent.scrollTop(newScroll);
    return false;
});

整个代码为here