如何让鼠标移动到某个dom上时,可以滚动这个dom,而不是滚动整个页面?

有一个一直困扰我的问题,页面如下,是一个简单的html代码生成的页面。页面就是body标签中包含一个div,我人为的让body超出可以滚动,让div内容也超出可以滚动。

此时页面的效果是:当你的鼠标在div之外的时候,你滚动页面,整体页面跟着滚动,当你的鼠标移动到div上的时候,滚动鼠标滚轮,此时滚动的是这个div。

这个是我想要的效果,这样才是合理的,写一个普通的页面默认是这样的效果了,问题来了,在一个复杂的页面中,多个div,下拉框等,经常失去这个效果,你的滚动就会滚动整个页面,必须要鼠标点击想滚动的div滚动条,才能滚动这个div。

所以我想问的是,影响这个操作的是什么,想百度一下都不知道怎么搜索。因为默认效果就是对的,而页面复杂的时候会失去这个效果(用一些别人的插件,比如下拉选择等,是有这个效果的)。

我猜想应该是可以控制这样的行为的。有大佬路过指导一下,要查询哪方面的知识,或者应该怎么做?

图片描述

该页面代码,浏览器Chrome

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body style="width: 400px;margin: 30px;">
        <div style="width: 200px;height: 300px;overflow-y: auto;font-size: 30px;margin-bottom: 6000px;padding: 50px;border: 1px black  solid;">
            <div style="padding-bottom: 300px;">我是一个容器</div>
            <div></div>
            <div></div>
        </div>
    </body>
    <script type="text/javascript">
        
    </script>
</html>
阅读 3.6k
2 个回答

事件委托(事件代理) 了解一下

事件冒泡,了解一下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题