Javascript 在div上滚动而不触发全页滚动

Javascript 在div上滚动而不触发全页滚动,javascript,html,css,angular,Javascript,Html,Css,Angular,我有一个网站,其中有一个页面滚动功能使用此- 现在在这个网站上,我想在一个页面中创建一个分区,在该分区中,全页滚动功能被禁用,我可以像正常情况一样滚动该分区-如下所示 我到现在为止所做的- app.component.html <app-navbar></app-navbar> <div fullpage id="fullpage2" [options]="config" (ref)="getRef($event)"> <div class="s

我有一个网站,其中有一个页面滚动功能使用此- 现在在这个网站上,我想在一个页面中创建一个分区,在该分区中,全页滚动功能被禁用,我可以像正常情况一样滚动该分区-如下所示

我到现在为止所做的-

app.component.html

<app-navbar></app-navbar>
<div fullpage id="fullpage2" [options]="config" (ref)="getRef($event)">
    <div class="section" id="banner">
        //first section
    </div>
    <div class="section" id="demos">
        //second section
    </div>
    <div class="section" id="prod-solution">
       // third section   
     </div>
    <div class="section" id="scroll-solution">

        <div style="height: 200px; border: 1px solid; overflow: auto;">
        // div where I want to disable full page scroll and enable normal scroll
            <div>
                Please scroll
                <div style="height: 1000px; width: 1000px;"></div>
            </div>
        </div>
    </div>
</div>
您应该捕获DIV上的wheel事件,该事件不应触发整页滚动,而只滚动该元素

密码 修改代码的部分以匹配以下部分:

<div style="height: 200px; border: 1px solid; overflow: auto;">
    <!-- add a scroll event listener -->
    <div (wheel)="blockScroll($event)">
        Please scroll
        <div style="height: 1000px; width: 1000px;"></div>
    </div>
</div>
演示

我在第2节中添加了一个滚动容器,它只会滚动自己的内容,而不会触发全页滚动


如果您想同时处理其他滚动事件(如触摸),则还需要将相关事件添加到中。

您能告诉我StopperProgation和preventDefault的功能吗?我是新来的this@AbhishekPatel太好了,对你有用!关于您的问题:多个元素可以侦听相同的事件,并附加事件侦听器。现在,如果一个事件发生,它将冒泡,这意味着事件将被一个接一个地触发,从最里面的元素一直到它的父元素,直到它到达最外面的元素。e、 停止传播;将中断此链并阻止事件到达下一个元素。e、 防止违约;将停止浏览器执行默认操作,即滚动页面。@AbhishekPatel是一个关于事件冒泡的示例指南,是关于MDN的默认设置的简短说明。
<div style="height: 200px; border: 1px solid; overflow: auto;">
    <!-- add a scroll event listener -->
    <div (wheel)="blockScroll($event)">
        Please scroll
        <div style="height: 1000px; width: 1000px;"></div>
    </div>
</div>
blockScroll(e) {
  let delta = e.deltaY || -e.detail;
  e.currentTarget.scrollTop += delta * 30;
  e.stopPropagation();
  e.preventDefault();
}