2017-08-24 63 views
0

我試圖在用戶向下滾動併到達頁面底部時觸發事件。檢查用戶是否已到達頁面底部

我搜索了互聯網,發現了一些帖子在stackoverflow但意外的答案沒有爲我工作。

例:Check if a user has scrolled to the bottom

使用上述SO後給出的答案,到達頁面的頂部而不是底部時,執行我試圖觸發事件。

請讓我知道,如果我錯了:

$(window).scroll(function() { 
if($(window).scrollTop() + $(window).height() == $(document).height()) { 
    loadmore(); 
} 
}); 

function loadmore(){ 

var lastProd = $('.product_div').last(); 
var lastProdID = $('.product_div').last().prop('id'); 
//console.info(lastProdID); return false; 
//var val = document.getElementById("row_no").value; 
$.ajax({ 
    type: 'post', 
    url: 'includes/load_products.php', 
    data: { getresult:lastProdID }, 
    success: function (response) { 
     console.log(response); 
     //var content = document.getElementById("all_rows"); 
     //content.innerHTML = content.innerHTML+response; 
     lastProd.after(response); 

     // We increase the value by 10 because we limit the results by 10 
     // document.getElementById("row_no").value = Number(val)+10; 
    } 
}); 
} 
+2

是否有在控制檯中的任何錯誤?如果沒有可重複的東西,這將很難幫助你。 – Script47

+0

你可以用你現在的代碼創建一個JSFiddle嗎? –

+0

好的,我會創建一個jsfiddle – goseo

回答

1

使用window.innerHeight + window.scrollY來確定底部位置,並檢查是否document.body.offsetHeight較低(等於將無法正常工作)。

積分爲mVChr,see here

window.onscroll = function(ev) { 
 
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { 
 
    alert("bottom of the page reached"); 
 
    } 
 
};
.jump { 
 
    height: 1000px; 
 
}
<div class="jump"></div>

+0

*信用轉到[mVChr](https://stackoverflow.com/users/246616/mvchr),[見這裏](https://stackoverflow.com/a/ 9439807/6331369)* - 然後標記/標記爲重複,以便他們真正獲得信用。 – Script47

0

檢查高度和偏移量是相等的

window.onscroll = function() { 
    var d = document.documentElement; 
    var offset = d.scrollTop + window.innerHeight; 
    var height = d.offsetHeight; 

    console.log('offset = ' + offset); 
    console.log('height = ' + height); 

    if (offset === height) { 
    console.log('At the bottom'); 
    loadmore(); // call function here 
    } 
}; 
相關問題