6

オーバーフローが非表示に設定されている場合、画面に表示されるすべてのリスト項目をカウントするにはどうすればよいですか?

以下のコードを使用しても、オーバーフローしたものも含め、すべてのアイテムがカウントされます。

   var count = $("#myList ul li:visible").length;

フィドル:

http://jsfiddle.net/kPAwX/2/

4

1 に答える 1

5
var maxh = $("#myList ul").height();
$("#myList ul li").filter(function () {
    return $(this).position().top + $(this).height() < maxh;
});

これにより、li完全に表示されているすべての が選択されます。anliが部分的に切り取られている場合は、フィルタリングされます。

部分的に表示liされている s をフィルタリングしないようにする場合は、高さの追加を削除するだけです (または、任意の方法で独自のカットオフを作成します)。

http://jsfiddle.net/ExplosionPIlls/z6GXA/

于 2013-02-07T02:57:34.350 に答える