我有以下问题。我有父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。
答案 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