2013-02-07 25 views
6

Làm cách nào để đếm tất cả các mục danh sách được hiển thị trên màn hình khi tràn được đặt thành ẩn?Đếm Danh sách Các mục được hiển thị trên màn hình và không tràn

Sử dụng mã bên dưới vẫn tính tất cả các mục, ngay cả các mục bị tràn.

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

Fiddle:

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

+2

': visible' chọn các yếu tố mà không có' display: tài sản none', bạn nên sử dụng các phương pháp như 'offset' hoặc' position' và lọc các yếu tố. – undefined

+0

Bạn có thể cho tôi một ví dụ không? – agassi0430

+1

Bạn có thể cung cấp bản demo trên http://jsfiddle.net không? – undefined

Trả lời

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

này sẽ chọn tất cả các li s đó là hoàn toàn có thể nhìn thấy. Nếu một số li bị cắt một phần, nó sẽ bị lọc.

Nếu bạn muốn thậm chí có thể nhìn thấy một phần li s để không được lọc, chỉ cần loại bỏ việc bổ sung chiều cao (hoặc tạo riêng cắt theo bất kỳ cách nào bạn muốn).

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

Các vấn đề liên quan