From: zuber Date: Tue, 18 Aug 2009 10:23:07 +0000 (+0200) Subject: - Wydzielenie synchronizacji przewijania do pluginu jQuery: jquery.autoscroll.js. X-Git-Url: https://git.mdrn.pl/redakcja.git/commitdiff_plain/a39ce20a7f4d01f30508c4d003e6d973298866c6?ds=sidebyside - Wydzielenie synchronizacji przewijania do pluginu jQuery: jquery.autoscroll.js. - Synchronizujemy teraz przewijanie, a nie tylko scrollTop. --- diff --git a/project/static/js/jquery.autoscroll.js b/project/static/js/jquery.autoscroll.js new file mode 100644 index 00000000..c342bdf5 --- /dev/null +++ b/project/static/js/jquery.autoscroll.js @@ -0,0 +1,31 @@ +(function($) { + $.fn.autoscroll = function(synchronizeWith, options) { + var self = $(this); + var selfContainer = self.parent(); + var synchronizeWith = $(synchronizeWith); + var synchronizeWithContainer = synchronizeWith.parent(); + var eventContainer = synchronizeWithContainer; + + // Hack for iframes + if (self.is('iframe')) { + selfContainer = $('body', $('iframe').contents()); + self = selfContainer; + } + + if (synchronizeWith.is('iframe')) { + eventContainer = synchronizeWith.contents(); + synchronizeWithContainer = $('body', eventContainer); + synchronizeWith = synchronizeWithContainer; + } + + 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()); + synchronizeWithContainer.data('autoscroll:lastCheckedScrollTop', synchronizeWithContainer.scrollTop()); + }); + }; +})(jQuery); + diff --git a/project/templates/explorer/file_xml.html b/project/templates/explorer/file_xml.html index c774fe1e..5bad3c4a 100644 --- a/project/templates/explorer/file_xml.html +++ b/project/templates/explorer/file_xml.html @@ -4,6 +4,7 @@ +