2013-02-07 8 views
6

Jak zliczyć wszystkie elementy listy wyświetlane na ekranie, gdy przepełnienie jest ustawione na ukryte?Lista elementów wyświetlanych na ekranie i bez przepełnienia

Użycie poniższego kodu nadal uwzględnia wszystkie pozycje, nawet te, które się przelewają.

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

Fiddle:

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

+2

': visible' wybiera elementy, które nie mają' wyświetlania: nieruchomość none', należy użyć metod, takich jak 'offset' lub' position' i filtrować elementy. – undefined

+0

Czy możesz dać mi przykład? – agassi0430

+1

Czy możesz dostarczyć demo na http://jsfiddle.net? – undefined

Odpowiedz

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

Spowoduje to zaznaczenie wszystkich li s, które są całkowicie widoczne. Jeśli część li zostanie częściowo odcięta, zostanie przefiltrowana.

Jeśli chcesz, aby nawet częściowo widoczne były li s, nie można filtrować, po prostu usuń dodawanie wysokości (lub utwórz własne odcięcie w dowolny sposób).

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

Powiązane problemy