From 79870644c403668b9efb25bdf76bcee1bdf58fc9 Mon Sep 17 00:00:00 2001 From: Martin van Haeften Date: Wed, 4 Sep 2013 13:08:47 +0200 Subject: [PATCH] fixes webkit error with 0.xx numbers. Webkit has the behavior to display a number. For example. in webkit you divide the screen size by 3. and use this percentage for the css left property. This library returns for the offset().left a 0.33xxxx which has to be 0 or 1. --- jquery.viewport.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/jquery.viewport.js b/jquery.viewport.js index 3abb893..dd170f3 100644 --- a/jquery.viewport.js +++ b/jquery.viewport.js @@ -14,22 +14,22 @@ $.belowthefold = function(element, settings) { var fold = $(window).height() + $(window).scrollTop(); - return fold <= $(element).offset().top - settings.threshold; + return fold <= Math.round($(element).offset().top) - settings.threshold; }; $.abovethetop = function(element, settings) { var top = $(window).scrollTop(); - return top >= $(element).offset().top + $(element).height() - settings.threshold; + return top >= Math.round($(element).offset().top) + $(element).height() - settings.threshold; }; $.rightofscreen = function(element, settings) { var fold = $(window).width() + $(window).scrollLeft(); - return fold <= $(element).offset().left - settings.threshold; + return fold <= Math.round($(element).offset().left) - settings.threshold; }; $.leftofscreen = function(element, settings) { var left = $(window).scrollLeft(); - return left >= $(element).offset().left + $(element).width() - settings.threshold; + return left >= Math.round($(element).offset().left) + $(element).width() - settings.threshold; }; $.inviewport = function(element, settings) { @@ -90,6 +90,4 @@ return $.inviewport(a, {threshold : 0}); } }); - - })(jQuery);