So, I've got some data tossed in a div. It's split up into chunks by date. It scrolls horizontally with the use of jQuery and the mousewheel plugin.
I need to fire an event when the div has reached it's terminal point (farthest left, farthest right). I think that it is possible with the way it is currently implemented to calculate when you cannot scroll any further by detecting the data fetched in the mousewheel plugin. I just need a nudge in the right direction. Here's the code that does the horizontal scrolling for me:
$(document).ready(function () {
$('#timeline').mousedown(function (event) {
$(this)
.data('down', true)
.data('x', event.clientX)
.data('scrollLeft', this.scrollLeft);
return false;
}).mouseup(function (event) {
$(this).data('down', false);
}).mousemove(function (event) {
if ($(this).data('down') == true) {
this.scrollLeft = $(this).data('scrollLeft') + $(this).data('x') - event.clientX;
}
}).mousewheel(function (event, delta) {
this.scrollLeft -= (delta * 30);
}).css({
'overflow' : 'hidden',
'cursor' : '-moz-grab'
});
});
Can anybody give me some direction? Thanks!
Hey, I've prepared a page for you with the implementation. You can see how to detect the end of scrolling area with jQuery.
For the document as a whole you must detect in javascript whether
.scrollTop
has become equal to.scrollHeight
. With jQuery it would be to detect:The same is done for width. Have a look on example with
div
here.Here is the code that you want. It's proved that works on IE, Safari, Chrome, Firefox, etc.
Here is the HTML part.
Here is jQuery part in JavaScript functions.