-
-
Save toshimaru/6102647 to your computer and use it in GitHub Desktop.
$(window).on("scroll", function() { | |
var scrollHeight = $(document).height(); | |
var scrollPosition = $(window).height() + $(window).scrollTop(); | |
if ((scrollHeight - scrollPosition) / scrollHeight === 0) { | |
// when scroll to bottom of the page | |
} | |
}); |
works perfectly on desktop and mobile version!
works perfect, thank you!
Hi,
is not necessary to have this operation :
if ((scrollHeight - scrollPosition) / scrollHeight === 0) because it's mean that (scrollHeight - scrollPosition) === 0.
So it's better and simpler to write this :
if ( scrollHeight - scrollPosition === 0 ) { }
Because that' way you easily change your value limit like this
if( scrollHeight - scrollPosition < 20 ) { }
if you want somethings happen when the user is 20 pixels about to reach the page bottom.
awesome
For those who find that this script doesn't work, check this property in your HMTL file .. < !DOCTYPE html >. As I found out, this can cause the window and document to report the same value, which breaks this script. This happens specifically in Chrome. And, if the tag is present, but specifies a URL after it, it may be necessary to remove the URL, or change it.
Welcome to the sauce that is the never ending problem of a Universal Interface.
jquery
https://stackoverflow.com/questions/12103208/jquery-window-height-is-returning-the-document-height
Does this work in mobile browser with responsive layout bootstrap?
Is it possible to pause between scrolls?
Does Not work on mobile
Will this work on mobile on tap?
but it does not works on the popup
awesome
Awesome.
Google Chrome gives the full height of the page if you call $(window).height()
Instead, use window.innerHeight
to retrieve the height of your window.
Necessary check should be:
if($(window).scrollTop() + window.innerHeight > $(document).height() - 50) {
console.log("reached bottom!");
}
don't work on mobile devices.
NON JQUERY version
let listContainer = document.getElementById('news_list_container');
listContainer.addEventListener('scroll', function(e) {
// https://stackoverflow.com/questions/876115/how-can-i-determine-if-a-div-is-scrolled-to-the-bottom
// https://stackoverflow.com/questions/6271237/detecting-when-user-scrolls-to-bottom-of-div-with-jquery, 12px buffer to make this work properly
if (listContainer.scrollTop >= (listContainer.scrollHeight - listContainer.offsetHeight - 12)) {
console.log('we are at the bottom now', listContainer.scrollTop, listContainer.scrollHeight - listContainer.offsetHeight) ;
}
});
@areghunanyan - worked perfectly!
I had the same issue, but none of these solutions helped me. For whom it is not not working just try this code and you are done
$(window).on("scroll", function() { if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { // ok } });
This code works perfect!
How to modify this code to trigger event 100px before bottom?
Is it possible?
@stanley123george i am wondering the same, but then about whether it is possible to trigger the event for a certain div
don't work on mobile devices.
I also had the same problem with you. On mobile don't work. Can anyone help me? Please!!!
How to detect when user scrolls to the bottom of a div ? - This worked for me.
https://www.geeksforgeeks.org/how-to-detect-when-user-scrolls-to-the-bottom-of-a-div
if ((document.querySelector("body").offsetHeight - document.documentElement.scrollTop < Math.max(document.documentElement.clientHeight, window.innerHeight || 0))) {
// on bottom
}
better non-jquery version
works perfect! I tried a lot suggestions and no one worked.. but this one is perfect!..
I'm implementing an endless scrolling function
potete mandare il file completo che visualizzi i valori
vabbè, ho trovato il modo.
Funciona al 100, thanks!
find out particular elements scroll bottom
$(".user_container").scroll(function(e){
console.log()
var scrollHeight = $(this).find("table").height(); //user_container inside elements height
var currentElementHeight = $(this).height()
var scrollMax = scrollHeight - currentElementHeight;
if(scrollMax == $(this).scrollTop()){
console.log("reached at Bottom");
}
})
@areghunanyan thanks
$(window).scroll(function() {
var scrollHeight = window.scrollY || $(window).scrollTop();
if ((window.innerHeight + scrollHeight) >= document.body.offsetHeight) {
// do something
}
});
I fixed little bit to work on ie too. this works fine for me.
If you want to do it in a element scroll, you can do this:
// ...
var parent = $('#parent')
var child = $('#child')
parent.on("scroll", function() {
if (parent.scrollTop()+parent[0].offsetHeight-child[0].scrollHeight === 0) {
// when scroll to bottom of the page
}
});
Awesome, thanks. This should be the first result for anyone who is searching for 'detect scroll to botton of page using jquery'.
Thanks a lot!