javascript - jQuery:div中两个位置之间有多少个元素

标签 javascript jquery html

我遇到了一个令人沮丧的问题,我不知道如何解决。

我的问题:如何确定视口(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/

相关文章:

javascript - 如何更改输入类型 datetime-local 的格式?

javascript - 使用 underscore.js 创建 javascript 自定义错误对象的快捷方式?

html - 没有主要 URL 的 Rel 规范

javascript - 为什么 javascript 没有更好的方法来包含文件?

javascript - 选择文件时的操作

javascript - RequireJS优化

javascript - Three.js:将图像添加到 6 立方体全景中的纹理底部作为热点

jquery - 从asp.net中的下拉列表中获取选定的值

javascript - 滑动到上一篇/下一篇文章 URL?

jquery - 菜单的文字不适合小屏幕