(function($) {
$.fn.autoscroll = function(synchronizeWith, options) {
- var self = $(this);
+ var $this = $(this);
+ var self = $this;
var selfContainer = self.parent();
var synchronizeWith = $(synchronizeWith);
var synchronizeWithContainer = synchronizeWith.parent();
synchronizeWithContainer = $('body', eventContainer);
synchronizeWith = synchronizeWithContainer;
}
-
- synchronizeWithContainer.data('autoscroll.lastCheckedScrollTop', synchronizeWithContainer.scrollTop());
+
+ $this.data('autoscroll:enabled', true);
+ synchronizeWithContainer.data('autoscroll:lastCheckedScrollTop', synchronizeWithContainer.scrollTop());
eventContainer.scroll(function() {
- var distanceScrolled = synchronizeWithContainer.scrollTop() - synchronizeWithContainer.data('autoscroll:lastCheckedScrollTop');
- var percentScrolled = distanceScrolled / synchronizeWith.height();
- selfContainer.scrollTop(selfContainer.scrollTop() + percentScrolled * self.height());
+ if ($this.data('autoscroll:enabled')) {
+ var distanceScrolled = synchronizeWithContainer.scrollTop() - synchronizeWithContainer.data('autoscroll:lastCheckedScrollTop');
+ var percentScrolled = distanceScrolled / synchronizeWith.height();
+ selfContainer.scrollTop(selfContainer.scrollTop() + percentScrolled * self.height());
+ }
synchronizeWithContainer.data('autoscroll:lastCheckedScrollTop', synchronizeWithContainer.scrollTop());
});
- };
+ },
+
+ $.fn.enableAutoscroll = function() {
+ $(this).data('autoscroll:enabled', true);
+ },
+
+ $.fn.disableAutoscroll = function() {
+ $(this).data('autoscroll:enabled', false);
+ },
+
+ $.fn.toggleAutoscroll = function() {
+ $(this).data('autoscroll:enabled', !$(this).data('autoscroll:enabled'));
+ }
})(jQuery);