You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义高度div中如何触发Angular infinite-scroll的scroll事件?

解决Angular固定高度div中无限滚动不触发的问题

问题原因

ngx-infinite-scroll默认监听全局window的滚动事件。当给目标div设置固定高度并开启overflow-y: auto后,滚动行为仅在div内部发生,window未产生滚动,因此scrolled事件无法触发。

解决方案

在目标div上添加[scrollWindow]="false"属性,明确指令监听当前元素的滚动而非window:

修改后的comp.html

<div class="sub_div"
    infinite-scroll
    [scrollWindow]="false"
    [infiniteScrollDistance]="2"
    [infiniteScrollThrottle]="1000"
    (scrolled)="onScrolls()"
    >
        <p *ngFor="let item of items" style="padding:25% 0">{{ item.name }}</p>
</div>

验证要点

  • 保留.sub_div的CSS配置,确保内部可滚动:
.sub_div {
    overflow-y: auto;
    width: 400px;
    height: 500px; /* 也可使用百分比或vh单位,比如height: 90vh */
    background: lightblue;
}
  • 若测试时仍未触发,可临时调小infiniteScrollDistance的值(比如改为0.5),确认事件是否正常响应,再根据需求调整回合适数值。

内容的提问来源于stack exchange,提问作者Tech Stack by Antra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:01:22