1(function ( $ ) { 2 3 $.fn.scrollToggle = function(options) { 4 5 // Default options 6 var settings = $.extend({ 7 delta: 5, 8 timeout: 250, 9 class_invisible: 'invisible', 10 class_visible: 'visible' 11 }, options); 12 13 function scroll_toggle(element_to_toggle) { 14 var did_scroll; 15 var last_scroll_top = 0; 16 var delta = settings.delta; 17 var element_height = element_to_toggle.outerHeight(); 18 19 $(window).scroll(function(event){ 20 did_scroll = true; 21 }); 22 23 setInterval(function() { 24 if (did_scroll) { 25 last_scroll_top = has_scrolled(element_to_toggle, element_height, last_scroll_top, delta); 26 did_scroll = false; 27 } 28 }, settings.timeout); 29 } 30 31 function has_scrolled(element_to_toggle, element_height, last_scroll_top, delta) { 32 var scroll_top = $(this).scrollTop(); 33 34 if(Math.abs(last_scroll_top - scroll_top) <= delta) { 35 return; 36 } 37 38 if (scroll_top > last_scroll_top && scroll_top > element_height){ 39 element_to_toggle.removeClass(settings.class_visible).addClass(settings.class_invisible); 40 element_to_toggle.trigger('scrollToggle', [false]); 41 } else { 42 if(scroll_top + $(window).height() < $(document).height()) { 43 element_to_toggle.removeClass(settings.class_invisible).addClass(settings.class_visible); 44 element_to_toggle.trigger('scrollToggle', [true]); 45 } 46 } 47 48 return scroll_top; 49 } 50 51 return this.each(function() { 52 scroll_toggle($(this)); 53 }); 54 }; 55 56}( jQuery )); 57
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.