jQuery has a function called scrollTop which can be used to find the number of pixels hidden above the current page view.
I\'m not really sure why, but there is no s
This is how I have calculated the distance from the bottom of the element to the bottom of the document:
$(document).height() - ($('#element').offset().top + $('#element').height());
Perhaps this will help how to tell jquery to scroll to bottom, because there is really no opposite function. Same is the problem with scrollLeft - there is no scrollRight
try this:
return this[0].scrollHeight - this.scrollTop() - this.height();
As scrollTop's default behaviour scrolls to 0 when passing a negative value, I did this function that handles scrollTop and simulate a "scrollDown".
If anchor_pos is negative (so it's above my current scroll position), I subtract its value from current scroll position (as it has a negative value, I'm using + sign)
function jumpToAnchor(scrollable_div_selector, anchor_selector)
{
anchor_pos = $(anchor_selector).position().top;
//check if negative number
if (anchor_pos < 0)
{
anchor_pos = $(scrollable_div_selector).scrollTop() + anchor_pos; //anchor_pos is negative, so i'm substracting it
}
$(scrollable_div_selector).scrollTop(anchor_pos);
}
You could make a pretty simple plugin for this:
$.fn.scrollBottom = function() {
return $(document).height() - this.scrollTop() - this.height();
};
Then call it on whatever element you wanted, for example:
$(window).scrollBottom(); //how many pixels below current view
$("#elem").scrollBottom(); //how many pixels below element
function scrollBottom()
{
return $( window ).scrollTop() + $( window ).height();
}
// example usage
$( '#footer' ).css( 'top', scrollBottom() - $( '#footer' ).height() );