diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:12:12 -0400 |
commit | c9aa36da061816dee256a979c2ff8d2ee41824d9 (patch) | |
tree | 29f7002b80ee984b488bd047dbbd80b36bf892e9 /resources/src/jquery/jquery.footHovzer.js | |
parent | b4274e0e33eafb5e9ead9d949ebf031a9fb8363b (diff) | |
parent | d1ba966140d7a60cd5ae4e8667ceb27c1a138592 (diff) |
Merge branch 'archwiki'
# Conflicts:
# skins/ArchLinux.php
# skins/ArchLinux/archlogo.gif
Diffstat (limited to 'resources/src/jquery/jquery.footHovzer.js')
-rw-r--r-- | resources/src/jquery/jquery.footHovzer.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/resources/src/jquery/jquery.footHovzer.js b/resources/src/jquery/jquery.footHovzer.js new file mode 100644 index 00000000..de745c33 --- /dev/null +++ b/resources/src/jquery/jquery.footHovzer.js @@ -0,0 +1,66 @@ +/** + * @class jQuery.plugin.footHovzer + */ +( function ( $ ) { + var $hovzer, footHovzer, prevHeight, newHeight; + + function getHovzer() { + if ( $hovzer === undefined ) { + $hovzer = $( '<div id="jquery-foot-hovzer"></div>' ).appendTo( 'body' ); + } + return $hovzer; + } + + /** + * Utility to stack stuff in an overlay fixed on the bottom of the page. + * + * Usage: + * + * var hovzer = $.getFootHovzer(); + * hovzer.$.append( $myCollection ); + * hovzer.update(); + * + * @static + * @inheritable + * @return {jQuery.footHovzer} + */ + $.getFootHovzer = function () { + footHovzer.$ = getHovzer(); + return footHovzer; + }; + + /** + * @private + * @class jQuery.footHovzer + */ + footHovzer = { + + /** + * @property {jQuery} $ The stack container + */ + + /** + * Update dimensions of stack to account for changes in the subtree. + */ + update: function () { + var $body; + + $body = $( 'body' ); + if ( prevHeight === undefined ) { + prevHeight = getHovzer().outerHeight( /* includeMargin = */ true ); + $body.css( 'paddingBottom', '+=' + prevHeight + 'px' ); + } else { + newHeight = getHovzer().outerHeight( true ); + $body.css( 'paddingBottom', ( parseFloat( $body.css( 'paddingBottom' ) ) - prevHeight ) + newHeight ); + + prevHeight = newHeight; + } + } + }; + + /** + * @class jQuery + * @mixins jQuery.plugin.footHovzer + */ + +}( jQuery ) ); |