Angular虚拟滚动跳跃
创始人
2024-10-30 10:31:00
0

在angular虚拟滚动中,如果元素的高度不是固定的,那么滚动可能会出现跳动的现象。解决这个问题的方法是计算每个元素的高度,并根据这个高度来设置每个元素的占位高度。具体步骤如下:

  1. 在组件中定义items和itemHeights数组。

export class MyComponent { items = []; itemHeights = []; ... }

  1. 在ngOnInit中初始化items数组,计算每个元素的高度并设置其占位高度。

ngOnInit() { for(let i = 0; i < 1000; i++) { this.items.push(Item ${i}); this.itemHeights.push(Math.round(Math.random() * 100) + 50); } }

  1. 在ngAfterViewInit中获取每个元素的高度并设置其占位高度。

ngAfterViewInit() { const children = this.scrollable.nativeElement.children; for(let i = 0; i < children.length; i++) { const child = children[i]; const height = child.clientHeight; this.itemHeights[i] = height; } }

  1. 在改变滚动位置时,计算滚动条当前所在的位置,并通过计算每个元素的占位高度来设置正确的滚动位置。

onScroll() { const scrollTop = this.scrollable.nativeElement.scrollTop; let index = 0; let sum = 0; while(sum < scrollTop) { sum += this.itemHeights[index++]; } this.startIndex = Math.max(0, index - 1); this.endIndex = Math.min(this.items.length - 1, index + this.pageSize); }

  1. 在组件的模板中使用虚拟滚动指令,并设置每个元素的高度。

{{ item }}

这样就可以解决虚拟滚动跳跃的问题了。

相关内容

热门资讯

必看攻略!wpk可以透视挂,江... 必看攻略!wpk可以透视挂,江西中指黑科技辅助软件,解密教程(有挂秘笈)-哔哩哔哩1、江西中指黑科技...
攻略讲解!佛手在线有挂,乐逍遥... 攻略讲解!佛手在线有挂,乐逍遥脚本辅助,2025教程(有挂方法)-哔哩哔哩1、乐逍遥脚本辅助透视辅助...
玩家必看秘籍!aapoker可... 玩家必看秘籍!aapoker可以设置提高好牌几率,盛世透视辅助工具,规律教程(有挂细节)-哔哩哔哩a...
每日必备!wejoker辅助软... 每日必备!wejoker辅助软件,丽水都莱脚本辅助,揭秘攻略(有挂辅助)-哔哩哔哩1、丽水都莱脚本辅...
推荐几款新版!hhpoker的... 推荐几款新版!hhpoker的辅助是真的,多乐跑的快游戏辅助脚本,微扑克教程(有挂助手)-哔哩哔哩一...
重大消息!werplan可以透... 重大消息!werplan可以透视,边锋干瞪眼辅助器,科技教程(有挂实锤)-哔哩哔哩1、边锋干瞪眼辅助...
今日科普!hhpoker脚本下... 今日科普!hhpoker脚本下载,椰子大厅辅助脚本,德州教程(确实有挂)-哔哩哔哩运椰子大厅辅助脚本...
热点推荐!WePOker有透视... 热点推荐!WePOker有透视方法,潘潘讲故事辅助挂,揭秘攻略(揭秘有挂)-哔哩哔哩1、操作简单,无...
六分钟了解!wepokerh5... 六分钟了解!wepokerh5破解,aapoker ai插件,力荐教程(有挂分享)-哔哩哔哩aapo...
科普!wepoker有辅助器,... 科普!wepoker有辅助器,微乐锄大地脚本,新版2025教程(果真有挂)-哔哩哔哩1.微乐锄大地脚...