0

我有一个无序列表,它是一个较小的父 div 中的一个子元素,并且在第一个 div 中滚动。我将如何选择<li>当前在第一个 div 窗口中可见的?

我尝试的是使用父容器的 jQuery 偏移坐标和我从这里得到的 elementFromPoint

xcoo = $('#menuholder1').offset().left;
ycoo = $('#menuholder1').offset().top;
clickedID = document.elementFromPoint(xcoo, ycoo).id;

但是,这会将元素返回高一级。所以我尝试只添加到 ycoo,但它什么也没返回。

有人对此有其他解决方案吗?有问题的页面是http://do.right.by

4

1 回答 1

0

我用这个插件来选择可见元素: http: //archive.plugins.jquery.com/project/viewport

它添加了伪选择器:in-viewport,因此您可以像这样选择:

$("li:in-viewport")

要使其应用于父元素而不是窗口,请在此处获取修改后的源代码:https ://gist.github.com/2979829

对于看起来像这样的 IIFE

(function($, window) {
    //bunch of code...
})(jQuery, "#menuholder1");

#menuholder1 是选择您的父元素的查询。

于 2012-06-23T19:03:25.033 回答