2012-06-05 19 views
5

Tôi đang sử dụng script nhỏ này để xác định nếu user've cuộn xuống đáy"Cuộn vô hạn" giống như. Làm cho nó bắn trước khi đáy

$(window).scroll(function(){ 

    if($(window).scrollTop() == $(document).height() - $(window).height()){ 
     if(!taskFired){ 
      taskFired = true; 
      $("#loading_gif").css("display", "block"); 
      setTimeout(loadMoreMabs, 1500); 
     } 
    } 

}); 

Nhưng tôi wan't nó để bắn các loadMoreMabs chức năng trước đáy đạt được . Tôi sẽ làm như thế nào? Tôi đã cố gắng để + và - với chiều cao, nhưng nó giống như tôi đang thử nghiệm với một cái gì đó tôi không thực sự nhận được.

Trả lời

8

gì tiêu đề câu hỏi của bạn cho thấy bạn muốn

Trừ một giá trị từ $(document).height() cái gì đó như 50 để bắt đầu tải 50 pixel từ phía dưới.

if($(window).scrollTop() <= ($(document).height() - 50) - $(window).height()){ 

Đây là một bản demo ít trong jsfiddle, tôi đã thực hiện một chức năng giả để thực hiện các hoạt động loadMoreMabs

http://jsfiddle.net/sg3s/UwXaw/

cháy mỗi khi bạn đang ở gần đáy và 1500ms hết hạn.

Bây giờ để làm cho nó cháy (ngay lập tức) CHỈ nếu nó đạt đến rất dưới cùng.

(vì nó thực sự thấy cái gì khác)

http://jsfiddle.net/sg3s/UwXaw/1/

Bí quyết có lẽ là >= trong phương trình, đảm bảo nó cháy nếu scrollTop là như nhau hoặc cao hơn trừ tài liệu chiều cao cửa sổ ...

+0

Rất đẹp. Cảm ơn! :-) Tôi đã cố gắng im này chắc chắn, nhưng quên thêm() Tôi nghĩ rằng :) – skolind

+0

@Kolind yeah những người rất quan trọng: p – sg3s

+0

@Kolind như một mẹo, bạn có thể muốn theo dõi vị trí scrollTop và thêm một quy tắc để tuyên bố rằng nó chỉ tái kích hoạt chức năng nếu giá trị mới trong sự kiện đó là cao hơn so với một trong những bạn theo dõi. Điều này đảm bảo rằng sự kiện chỉ được kích hoạt khi mọi người cuộn XUỐNG. – sg3s

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