Merge "jQuery.footHovzer: Fix scrolling issues"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 2 Jan 2015 17:51:18 +0000 (17:51 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 2 Jan 2015 17:51:18 +0000 (17:51 +0000)
resources/src/jquery/jquery.footHovzer.js

index de745c3..e601ddb 100644 (file)
@@ -2,7 +2,7 @@
  * @class jQuery.plugin.footHovzer
  */
 ( function ( $ ) {
-       var $hovzer, footHovzer, prevHeight, newHeight;
+       var $hovzer, footHovzer, $spacer;
 
        function getHovzer() {
                if ( $hovzer === undefined ) {
                        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;
+                       if ( $spacer === undefined ) {
+                               $spacer = $( '<div>' ).attr( 'id', 'jquery-foot-hovzer-spacer' );
+                               $spacer.appendTo( $body );
                        }
+                       // Ensure CSS is applied by browser before using .outerHeight()
+                       setTimeout( function () {
+                               $spacer.css( 'height', getHovzer().outerHeight( /* includeMargin = */ true ) );
+                       }, 0 );
                }
        };