【发布时间】:2020-02-10 19:07:35
【问题描述】:
我想知道是否有可能(在 javascript 或 jquery 中,但没有任何插件)在当前视口中获取所有元素(例如表行 tr)而不遍历每个元素?我找到了很多示例如何检查指定元素是否在当前视口中,但我需要的是一个函数返回当前视口中所有元素的列表。我需要这个来进行虚拟化,因为这个表应该有无限的容量,并且从两百万行中循环遍历每一行是非常低效的 :)
有什么合理的方法可以做到这一点吗?
【问题讨论】:
-
对于诸如表格之类的东西,您可以进行二进制搜索来找到它,假设您不关心或不使用位于其父级之外或重叠的任何元素。
-
不,除非您循环遍历元素以检查它们是否在屏幕外,否则这是不可能的。
-
您可以通过计算窗口的当前滚动位置来缩小循环范围,如下所示:stackoverflow.com/questions/3658496/…
标签: javascript algorithm binary-search