繁体   English   中英

获取可滚动列表中第一个可见项目的位置

[英]Get position of the first visible item in a scrollable list

我有li的清单。 每个项目在集合中都有一个对应的对象。 当我开始滚动列表时,我现在想知道什么是实际的第一个可见项目以及它在我的收藏中的位置。 在我的第一个版本中,这很容易,因为每个项目都有相同的高度,我可以将列表的scrollTop除以项目的高度。 但是在我们的新版本中,每个项目的高度都可能不同。

问题在于它是一个无限滚动的列表,并且必须在移动设备上运行。 因此,也许有更好的解决方案,然后遍历所有项目并汇总其高度,直到其高度大于列表的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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM