You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
45 KiB

{"version":3,"sources":["sticky.js"],"names":["$","window","document","undefined","Math","self","Function","fn","sticky","parameters","returnedValue","$allModules","this","moduleSelector","selector","time","Date","getTime","performance","query","arguments","methodInvoked","queryArguments","slice","call","each","$container","$context","documentObserver","observer","module","settings","isPlainObject","extend","className","namespace","error","eventNamespace","moduleNamespace","$module","$window","$scroll","scrollContext","instance","data","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","callback","setTimeout","element","initialize","determineContainer","determineContext","verbose","save","positions","checkErrors","bind","events","observeChanges","instantiate","destroy","reset","disconnect","off","event","load","resize","scrollchange","removeData","MutationObserver","documentChanged","changed","observe","childList","subtree","debug","container","offsetParent","context","length","invalidContext","is","hidden","visible","cache","height","elementSize","on","scroll","mutations","clearTimeout","timer","refresh","forEach","mutation","removedNodes","node","find","triggerHandler","scrollTop","scrollPosition","stick","onScroll","hardRefresh","onReposition","supports","$element","addClass","supported","css","match","lastScroll","elementScroll","margin","top","parseInt","bottom","offset","width","outerWidth","outerHeight","standardScroll","left","scrollLeft","fits","set","containerSize","size","get","direction","scrollChange","currentElementScroll","abs","delta","maxScroll","possibleScroll","remove","tagName","jitter","minimumSize","style","setProperty","hasClass","initialPosition","fixed","bound","cachedPosition","pushing","bottomOffset","doesntFit","elementVisible","bindBottom","fixTop","setInitialPosition","fixBottom","bindTop","marginBottom","removeClass","onTop","onUnstick","onBottom","unfix","unbind","onStick","resetCSS","setting","name","value","internal","silent","log","prototype","console","info","apply","message","currentTime","executionTime","previousTime","push","Name","Arguments","Element","Execution Time","display","title","totalTime","index","group","table","groupCollapsed","groupEnd","invoke","passedArguments","maxDepth","found","response","object","split","depth","camelCaseValue","charAt","toUpperCase","isFunction","isArray","method","jQuery"],"mappings":"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","file":"sticky.min.js","sourcesContent":["/*!\n * # Semantic UI 2.2.6 - Sticky\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.sticky = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.sticky.settings, parameters)\n : $.extend({}, $.fn.sticky.settings),\n\n className = settings.className,\n namespace = settings.namespace,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $window = $(window),\n $scroll = $(settings.scrollContext),\n $container,\n $context,\n\n selector = $module.selector || '',\n instance = $module.data(moduleNamespace),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n element = this,\n\n documentObserver,\n observer,\n module\n ;\n\n module = {\n\n initialize: function() {\n\n module.determineContainer();\n module.determineContext();\n module.verbose('Initializing sticky', settings, $container);\n\n module.save.positions();\n module.checkErrors();\n module.bind.events();\n\n if(settings.observeChanges) {\n module.observeChanges();\n }\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous instance');\n module.reset();\n if(documentObserver) {\n documentObserver.disconnect();\n }\n if(observer) {\n observer.disconnect();\n }\n $window\n .off('load' + eventNamespace, module.event.load)\n .off('resize' + eventNamespace, module.event.resize)\n ;\n $scroll\n .off('scrollchange' + eventNamespace, module.event.scrollchange)\n ;\n $module.removeData(moduleNamespace);\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n documentObserver = new MutationObserver(module.event.documentChanged);\n observer = new MutationObserver(module.event.changed);\n documentObserver.observe(document, {\n childList : true,\n subtree : true\n });\n observer.observe(element, {\n childList : true,\n subtree : true\n });\n observer.observe($context[0], {\n childList : true,\n subtree : true\n });\n module.debug('Setting up mutation observer', observer);\n }\n },\n\n determineContainer: function() {\n if(settings.container) {\n $container = $(settings.container);\n }\n else {\n $container = $module.offsetParent();\n }\n },\n\n determineContext: function() {\n if(settings.context) {\n $context = $(settings.context);\n }\n else {\n $context = $container;\n }\n if($context.length === 0) {\n module.error(error.invalidContext, settings.context, $module);\n return;\n }\n },\n\n checkErrors: function() {\n if( module.is.hidden() ) {\n module.error(error.visible, $module);\n }\n if(module.cache.element.height > module.cache.context.height) {\n module.reset();\n module.error(error.elementSize, $module);\n return;\n }\n },\n\n bind: {\n events: function() {\n $window\n .on('load' + eventNamespace, module.event.load)\n .on('resize' + eventNamespace, module.event.resize)\n ;\n // pub/sub pattern\n $scroll\n .off('scroll' + eventNamespace)\n .on('scroll' + eventNamespace, module.event.scroll)\n .on('scrollchange' + eventNamespace, module.event.scrollchange)\n ;\n }\n },\n\n event: {\n changed: function(mutations) {\n clearTimeout(module.timer);\n module.timer = setTimeout(function() {\n module.verbose('DOM tree modified, updating sticky menu', mutations);\n module.refresh();\n }, 100);\n },\n documentChanged: function(mutations) {\n [].forEach.call(mutations, function(mutation) {\n if(mutation.removedNodes) {\n [].forEach.call(mutation.removedNodes, function(node) {\n if(node == element || $(node).find(element).length > 0) {\n module.debug('Element removed from DOM, tearing down events');\n module.destroy();\n }\n });\n }\n });\n },\n load: function() {\n module.verbose('Page contents finished loading');\n requestAnimationFrame(module.refresh);\n },\n resize: function() {\n module.verbose('Window resized');\n requestAnimationFrame(module.refresh);\n },\n scroll: function() {\n requestAnimationFrame(function() {\n $scroll.triggerHandler('scrollchange' + eventNamespace, $scroll.scrollTop() );\n });\n },\n scrollchange: function(event, scrollPosition) {\n module.stick(scrollPosition);\n settings.onScroll.call(element);\n }\n },\n\n refresh: function(hardRefresh) {\n module.reset();\n if(!settings.context) {\n module.determineContext();\n }\n if(hardRefresh) {\n module.determineContainer();\n }\n module.save.positions();\n module.stick();\n settings.onReposition.call(element);\n },\n\n supports: {\n sticky: function() {\n var\n $element = $('<div/>'),\n element = $element[0]\n ;\n $element.addClass(className.supported);\n return($element.css('position').match('sticky'));\n }\n },\n\n save: {\n lastScroll: function(scroll) {\n module.lastScroll = scroll;\n },\n elementScroll: function(scroll) {\n module.elementScroll = scroll;\n },\n positions: function() {\n var\n scrollContext = {\n height : $scroll.height()\n },\n element = {\n margin: {\n top : parseInt($module.css('margin-top'), 10),\n bottom : parseInt($module.css('margin-bottom'), 10),\n },\n offset : $module.offset(),\n width : $module.outerWidth(),\n height : $module.outerHeight()\n },\n context = {\n offset : $context.offset(),\n height : $context.outerHeight()\n },\n container = {\n height: $container.outerHeight()\n }\n ;\n if( !module.is.standardScroll() ) {\n module.debug('Non-standard scroll. Removing scroll offset from element offset');\n\n scrollContext.top = $scroll.scrollTop();\n scrollContext.left = $scroll.scrollLeft();\n\n element.offset.top += scrollContext.top;\n context.offset.top += scrollContext.top;\n element.offset.left += scrollContext.left;\n context.offset.left += scrollContext.left;\n }\n module.cache = {\n fits : ( element.height < scrollContext.height ),\n scrollContext : {\n height : scrollContext.height\n },\n element: {\n margin : element.margin,\n top : element.offset.top - element.margin.top,\n left : element.offset.left,\n width : element.width,\n height : element.height,\n bottom : element.offset.top + element.height\n },\n context: {\n top : context.offset.top,\n height : context.height,\n bottom : context.offset.top + context.height\n }\n };\n module.set.containerSize();\n module.set.size();\n module.stick();\n module.debug('Caching element positions', module.cache);\n }\n },\n\n get: {\n direction: function(scroll) {\n var\n direction = 'down'\n ;\n scroll = scroll || $scroll.scrollTop();\n if(module.lastScroll !== undefined) {\n if(module.lastScroll < scroll) {\n direction = 'down';\n }\n else if(module.lastScroll > scroll) {\n direction = 'up';\n }\n }\n return direction;\n },\n scrollChange: function(scroll) {\n scroll = scroll || $scroll.scrollTop();\n return (module.lastScroll)\n ? (scroll - module.lastScroll)\n : 0\n ;\n },\n currentElementScroll: function() {\n if(module.elementScroll) {\n return module.elementScroll;\n }\n return ( module.is.top() )\n ? Math.abs(parseInt($module.css('top'), 10)) || 0\n : Math.abs(parseInt($module.css('bottom'), 10)) || 0\n ;\n },\n\n elementScroll: function(scroll) {\n scroll = scroll || $scroll.scrollTop();\n var\n element = module.cache.element,\n scrollContext = module.cache.scrollContext,\n delta = module.get.scrollChange(scroll),\n maxScroll = (element.height - scrollContext.height + settings.offset),\n elementScroll = module.get.currentElementScroll(),\n possibleScroll = (elementScroll + delta)\n ;\n if(module.cache.fits || possibleScroll < 0) {\n elementScroll = 0;\n }\n else if(possibleScroll > maxScroll ) {\n elementScroll = maxScroll;\n }\n else {\n elementScroll = possibleScroll;\n }\n return elementScroll;\n }\n },\n\n remove: {\n lastScroll: function() {\n delete module.lastScroll;\n },\n elementScroll: function(scroll) {\n delete module.elementScroll;\n },\n offset: function() {\n $module.css('margin-top', '');\n }\n },\n\n set: {\n offset: function() {\n module.verbose('Setting offset on element', settings.offset);\n $module\n .css('margin-top', settings.offset)\n ;\n },\n containerSize: function() {\n var\n tagName = $container.get(0).tagName\n ;\n if(tagName === 'HTML' || tagName == 'body') {\n // this can trigger for too many reasons\n //module.error(error.container, tagName, $module);\n module.determineContainer();\n }\n else {\n if( Math.abs($container.outerHeight() - module.cache.context.height) > settings.jitter) {\n module.debug('Context has padding, specifying exact height for container', module.cache.context.height);\n $container.css({\n height: module.cache.context.height\n });\n }\n }\n },\n minimumSize: function() {\n var\n element = module.cache.element\n ;\n $container\n .css('min-height', element.height)\n ;\n },\n scroll: function(scroll) {\n module.debug('Setting scroll on element', scroll);\n if(module.elementScroll == scroll) {\n return;\n }\n if( module.is.top() ) {\n $module\n .css('bottom', '')\n .css('top', -scroll)\n ;\n }\n if( module.is.bottom() ) {\n $module\n .css('top', '')\n .css('bottom', scroll)\n ;\n }\n },\n size: function() {\n if(module.cache.element.height !== 0 && module.cache.element.width !== 0) {\n element.style.setProperty('width', module.cache.element.width + 'px', 'important');\n element.style.setProperty('height', module.cache.element.height + 'px', 'important');\n }\n }\n },\n\n is: {\n standardScroll: function() {\n return ($scroll[0] == window);\n },\n top: function() {\n return $module.hasClass(className.top);\n },\n bottom: function() {\n return $module.hasClass(className.bottom);\n },\n initialPosition: function() {\n return (!module.is.fixed() && !module.is.bound());\n },\n hidden: function() {\n return (!$module.is(':visible'));\n },\n bound: function() {\n return $module.hasClass(className.bound);\n },\n fixed: function() {\n return $module.hasClass(className.fixed);\n }\n },\n\n stick: function(scroll) {\n var\n cachedPosition = scroll || $scroll.scrollTop(),\n cache = module.cache,\n fits = cache.fits,\n element = cache.element,\n scrollContext = cache.scrollContext,\n context = cache.context,\n offset = (module.is.bottom() && settings.pushing)\n ? settings.bottomOffset\n : settings.offset,\n scroll = {\n top : cachedPosition + offset,\n bottom : cachedPosition + offset + scrollContext.height\n },\n direction = module.get.direction(scroll.top),\n elementScroll = (fits)\n ? 0\n : module.get.elementScroll(scroll.top),\n\n // shorthand\n doesntFit = !fits,\n elementVisible = (element.height !== 0)\n ;\n\n if(elementVisible) {\n\n if( module.is.initialPosition() ) {\n if(scroll.top >= context.bottom) {\n module.debug('Initial element position is bottom of container');\n module.bindBottom();\n }\n else if(scroll.top > element.top) {\n if( (element.height + scroll.top - elementScroll) >= context.bottom ) {\n module.debug('Initial element position is bottom of container');\n module.bindBottom();\n }\n else {\n module.debug('Initial element position is fixed');\n module.fixTop();\n }\n }\n\n }\n else if( module.is.fixed() ) {\n\n // currently fixed top\n if( module.is.top() ) {\n if( scroll.top <= element.top ) {\n module.debug('Fixed element reached top of container');\n module.setInitialPosition();\n }\n else if( (element.height + scroll.top - elementScroll) >= context.bottom ) {\n module.debug('Fixed element reached bottom of container');\n module.bindBottom();\n }\n // scroll element if larger than screen\n else if(doesntFit) {\n module.set.scroll(elementScroll);\n module.save.lastScroll(scroll.top);\n module.save.elementScroll(elementScroll);\n }\n }\n\n // currently fixed bottom\n else if(module.is.bottom() ) {\n\n // top edge\n if( (scroll.bottom - element.height) <= element.top) {\n module.debug('Bottom fixed rail has reached top of container');\n module.setInitialPosition();\n }\n // bottom edge\n else if(scroll.bottom >= context.bottom) {\n module.debug('Bottom fixed rail has reached bottom of container');\n module.bindBottom();\n }\n // scroll element if larger than screen\n else if(doesntFit) {\n module.set.scroll(elementScroll);\n module.save.lastScroll(scroll.top);\n module.save.elementScroll(elementScroll);\n }\n\n }\n }\n else if( module.is.bottom() ) {\n if( scroll.top <= element.top ) {\n module.debug('Jumped from bottom fixed to top fixed, most likely used home/end button');\n module.setInitialPosition();\n }\n else {\n if(settings.pushing) {\n if(module.is.bound() && scroll.bottom <= context.bottom ) {\n module.debug('Fixing bottom attached element to bottom of browser.');\n module.fixBottom();\n }\n }\n else {\n if(module.is.bound() && (scroll.top <= context.bottom - element.height) ) {\n module.debug('Fixing bottom attached element to top of browser.');\n module.fixTop();\n }\n }\n }\n }\n }\n },\n\n bindTop: function() {\n module.debug('Binding element to top of parent container');\n module.remove.offset();\n $module\n .css({\n left : '',\n top : '',\n marginBottom : ''\n })\n .removeClass(className.fixed)\n .removeClass(className.bottom)\n .addClass(className.bound)\n .addClass(className.top)\n ;\n settings.onTop.call(element);\n settings.onUnstick.call(element);\n },\n bindBottom: function() {\n module.debug('Binding element to bottom of parent container');\n module.remove.offset();\n $module\n .css({\n left : '',\n top : ''\n })\n .removeClass(className.fixed)\n .removeClass(className.top)\n .addClass(className.bound)\n .addClass(className.bottom)\n ;\n settings.onBottom.call(element);\n settings.onUnstick.call(element);\n },\n\n setInitialPosition: function() {\n module.debug('Returning to initial position');\n module.unfix();\n module.unbind();\n },\n\n\n fixTop: function() {\n module.debug('Fixing element to top of page');\n module.set.minimumSize();\n module.set.offset();\n $module\n .css({\n left : module.cache.element.left,\n bottom : '',\n marginBottom : ''\n })\n .removeClass(className.bound)\n .removeClass(className.bottom)\n .addClass(className.fixed)\n .addClass(className.top)\n ;\n settings.onStick.call(element);\n },\n\n fixBottom: function() {\n module.debug('Sticking element to bottom of page');\n module.set.minimumSize();\n module.set.offset();\n $module\n .css({\n left : module.cache.element.left,\n bottom : '',\n marginBottom : ''\n })\n .removeClass(className.bound)\n .removeClass(className.top)\n .addClass(className.fixed)\n .addClass(className.bottom)\n ;\n settings.onStick.call(element);\n },\n\n unbind: function() {\n if( module.is.bound() ) {\n module.debug('Removing container bound position on element');\n module.remove.offset();\n $module\n .removeClass(className.bound)\n .removeClass(className.top)\n .removeClass(className.bottom)\n ;\n }\n },\n\n unfix: function() {\n if( module.is.fixed() ) {\n module.debug('Removing fixed position on element');\n module.remove.offset();\n $module\n .removeClass(className.fixed)\n .removeClass(className.top)\n .removeClass(className.bottom)\n ;\n settings.onUnstick.call(element);\n }\n },\n\n reset: function() {\n module.debug('Resetting elements position');\n module.unbind();\n module.unfix();\n module.resetCSS();\n module.remove.offset();\n module.remove.lastScroll();\n },\n\n resetCSS: function() {\n $module\n .css({\n width : '',\n height : ''\n })\n ;\n $container\n .css({\n height: ''\n })\n ;\n },\n\n setting: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n settings[name] = value;\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 0);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.sticky.settings = {\n\n name : 'Sticky',\n namespace : 'sticky',\n\n silent : false,\n debug : false,\n verbose : true,\n performance : true,\n\n // whether to stick in the opposite direction on scroll up\n pushing : false,\n\n context : false,\n container : false,\n\n // Context to watch scroll events\n scrollContext : window,\n\n // Offset to adjust scroll\n offset : 0,\n\n // Offset to adjust scroll when attached to bottom of screen\n bottomOffset : 0,\n\n jitter : 5, // will only set container height if difference between context and container is larger than this number\n\n // Whether to automatically observe changes with Mutation Observers\n observeChanges : false,\n\n // Called when position is recalculated\n onReposition : function(){},\n\n // Called on each scroll\n onScroll : function(){},\n\n // Called when element is stuck to viewport\n onStick : function(){},\n\n // Called when element is unstuck from viewport\n onUnstick : function(){},\n\n // Called when element reaches top of context\n onTop : function(){},\n\n // Called when element reaches bottom of context\n onBottom : function(){},\n\n error : {\n container : 'Sticky element must be inside a relative container',\n visible : 'Element is hidden, you must call refresh after element becomes visible. Use silent setting to surpress this warning in production.',\n method : 'The method you called is not defined.',\n invalidContext : 'Context specified does not exist',\n elementSize : 'Sticky element is larger than its container, cannot create sticky.'\n },\n\n className : {\n bound : 'bound',\n fixed : 'fixed',\n supported : 'native',\n top : 'top',\n bottom : 'bottom'\n }\n\n};\n\n})( jQuery, window, document );\n"]}