2017-08-24 12 views
0

ユーザーがスクロールしてページの下部に到達したときにイベントをトリガーしようとしています。ユーザーがページの下部に到達したかどうかを確認します

私はインターネットを検索し、stackoverflowでいくつかの投稿を見つけましたが、予期せず答えが私のために働いていませんでした。

例:ページの最上部ではなく下部に到達した時には、上記SOポストのために与えられた答えを使用してCheck if a user has scrolled to the bottom

、私はトリガーしようとしているイベントが実行されます。

私が間違っているつもりなら、私に知らせてください:

$(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

OK 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 
    } 
}; 
関連する問題