2013-02-07 10 views
6

オーバーフローが非表示に設定されていると、画面に表示されるすべてのリスト項目をカウントするにはどうすればよいですか?件数一覧画面に表示されたアイテムでオーバーフローしていない

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

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

フィドル:

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

+2

':NONE'財産、あなたが'・オフセットまたは 'position'のようなメソッドを使用して要素をフィルタする必要があります。visible'は'ディスプレイを持っていない要素を選択します。 – undefined

+0

私に例を挙げてもらえますか? – agassi0430

+1

http://jsfiddle.netでデモを提供できますか? – undefined

答えて

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

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

liを部分的に表示したい場合は、単に高さの追加を削除するか、任意の方法で切り取りを作成します。

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

関連する問題