2015-04-01 50 views
0

你好我使用下面的代码行用户之前解雇多余的项目100像素的追加是在底部:无限滚动火灾前下方

var height = window.innerHeight; 
if ($(window).scrollTop() + height + 100 >= $(document).height()) 

的问题是,很多时候有多个追加命令发送。如果用户在底部之前达到100px,则执行该命令。随着用户不断上下滚动,命令一次又一次地执行。在大多数浏览器非常频繁

$(window).scroll(function() { 
    if ($(window).scrollTop() + height == $(document).height()) { 
     // anything 
    } 
} 

回答

1

滚动事件触发:

我已经试过这一点。我猜想它会在第一次请求返回之前多次触发。如果已经有一个在飞行中,您可能需要添加一个标志来阻止请求。

var requesting = false; 

function renderPage() { /* ... */ } 

function makeRequest() { 
    if (!requesting) { 
    // Go ahead and fetch the next page. 
    requesting = true; 
    $.ajax(...).then(renderPage).always(function() { 
     requesting = false; 
    }); 
    } 
} 

$(window).on('scroll', function() { 
    if (/* scrolled to 100px above the bottom */) { 
    makeRequest(); 
    } 
}); 
1
I have a similar infinite scroll script running in my site. Try doing this: 
<script type="text/javascript"> 
$(document).ready(function(){ 
    // Trigger Funtion when browser scroll triggered 
    $(window).scroll(function(){ 
     if ($(window).scrollTop() >= $(document).height() - $(window).height() - 10){ 
//do action here 
     } 
    }); 
}); 
</script>