2011-03-22 19 views
0

私は、ユーザがページをリロードせずに、またはページネーションを利用して新しいアイテムを受け取れるようにする小さなスクリプトを持っています。jQueryアクションをページの90%下に実行

私はいくつかの情報でかなり大きなフッターを持っていますが、現在このスクリプトは、ユーザーがページの一番下に来たときにのみ読み込まれます。

あなたはそれを作ることができますか?ユーザーがページを90%ダウンしている場合は、機能が起動しますか?

ここに私の現在のスクリプトがあります。

<script type="text/javascript"> 
    alreadyloading = false; 
    start = 20; 
    stop = 30; 

    $(window).scroll(function() { 
     if ($('body').height() <= ($(window).height() + $(window).scrollTop())) { 
      if (alreadyloading == false) { 
       alreadyloading = true; 
       $('.last').show(); 
       $.ajax({ 
        type: "GET", 
        url: "/trophy-room/all/", 
        data: "start="+start+"&stop="+stop, 
        success: function(data) { 
         $(data).insertBefore('.last'); 
         start = stop; 
         stop = stop + 10; 
         $('.last').hide(); 
         alreadyloading = false; 
        } 
       }); 
       // if you reach bottom, send 10 as begging and 20 as stop 
       // load the data and insert before div last or something. [5:10] 
      } 
     } 
    }); 
    </script> 

答えて

4

スーパーシンプル。ちょうど倍数$('body').height() 0.9。

<script type="text/javascript"> 
    alreadyloading = false; 
    start = 20; 
    stop = 30; 

    $(window).scroll(function() { 
     if (($(window).scrollTop + $(window).height()) >= ($('body').height() * 0.9)) { 
      if (alreadyloading == false) { 
       alreadyloading = true; 
       $('.last').show(); 
       $.ajax({ 
        type: "GET", 
        url: "/trophy-room/all/", 
        data: "start="+start+"&stop="+stop, 
        success: function(data) { 
         $(data).insertBefore('.last'); 
         start = stop; 
         stop = stop + 10; 
         $('.last').hide(); 
         alreadyloading = false; 
        } 
       }); 
       // if you reach bottom, send 10 as begging and 20 as stop 
       // load the data and insert before div last or something. [5:10] 
      } 
     } 
    }); 
</script> 
0

Doh、私にそれを打つ。しかし、別の解決策をheres。 「prg」をチェックしてください。

$(window).scroll(function() { 
a = document.documentElement.scrollTop; 
b = document.body.scrollTop; 
c = document.documentElement.scrollHeight; 
d = document.documentElement.clientHeight; 

prg = Math.round(((a+b) /(c-d))*100); 

});

+0

あなたのアプローチのメリットは何ですか? –