获取可滚动列表中第一个可见项的位置
Get position of the first visible item in a scrollable list
我有一个包含li
s的列表。每个项在集合中都有一个相应的对象。当我开始滚动列表时,我现在想看看实际的第一个可见项目是什么,以及它在我的收藏中的位置。在我的第一个版本中,这很容易,因为每个项目都有相同的高度,我可以将列表的 scrollTop 除以项目的高度。但是在我们的新版本中,每个项目都可以有不同的高度。
问题是它是一个无限可滚动的列表,并且必须在移动设备上运行。因此,也许有更好的解决方案,然后遍历所有项目并汇总其高度,直到其大于列表顶部的滚动顶部。
是否有处理该问题的常用方法。
好的,
我找到了一种使用document.elementFromPoint
的简单方法:
<script>
var span = $('span');
var ul = $('ul')
var y = ul.offset().left +1;
var x = ul.offset().top +1;
$('ul').scroll(function(){
var el = document.elementFromPoint(y,x);
span.html($(el).html())
})
</script>
例
相关文章:
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- jquery:将动画绑定到滚动条位置的更好方法
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 有没有一种方法可以直接从cordova获得滚动位置
- 根据滚动位置动态更改href
- css/js:通过滚动固定位置
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 固定位置侧边栏不滚动-设置内容的高度
- 浏览器持续滚动位置
- 当静态元素与滚动上的固定元素位置重叠时进行检测
- javascript/获取滚动条位置的回调
- Sammy.js缓存和滚动位置时,返回历史
- 使用绝对位置时,jQuery向左滚动不起作用
- PHP保持滚动位置
- 按下后退按钮时,如何保持可滚动区域的滚动位置
- 刷新jqGrid;t在启用无限滚动的情况下保存当前页面位置
- 将滚动条移动到页面中间的控制位置
- 如何使用位置获取滚动功能获取 HTML 中的元素标签
- 滚动位置 (scrollTop) 硬件是否在浏览器中加速
- 鼠标位置滚动