我遇到了一个令人沮丧的问题,我不知道如何解决。
我的问题:如何确定视口(viewport)中两个位置之间存在多少个元素(在这种情况下为可滚动 div)?
假设我有一个可滚动的 <div>
它的高度为 150 像素,但视口(viewport)为 450 像素,其中大部分被隐藏。该 div 的子级高度为 30px,共 15 个。
问题2:我怎样才能知道n1和n2之间有多少个第一个 child ,看起来很简单,但事实证明并非如此。
我创建了一个 jsFiddle我已经部分解决了该解决方案,如果顶部值设置为 0,它就可以工作,但如果它是其他值,它就不起作用。例如,通过这个解决方案,我能够确定 0 到 200px 之间有 7 个可见的 div。但如果我更改它来确定 30px 和 230px 之间有多少个,它会告诉我 0,而此时它又应该是 7。
请帮忙!
最佳答案
试试这个:
var $this = $(this),
topOffset = $this.offset().top;
if (topOffset >= top && topOffset <= bottom) {
elements++;
}
这会检查当前元素(在 each()
中)的顶部偏移量是否大于 top
变量的值并增加 elements
只有那时。这样,您就不需要不断更新 height
变量。
这有效,正如您所看到的 here .
关于javascript - jQuery:div中两个位置之间有多少个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850956/