Skip to content

Instantly share code, notes, and snippets.

@nathggns
Created June 21, 2013 09:44
Show Gist options
  • Select an option

  • Save nathggns/5830127 to your computer and use it in GitHub Desktop.

Select an option

Save nathggns/5830127 to your computer and use it in GitHub Desktop.
Is element visible in the viewport?
(function(window, $) {
$.fn.in_viewport = function(parent) {
if (typeof parent === 'undefined') parent = window;
var $child = this;
if (!$child.is(':visible')) return false;
var $parent = $(parent);
var parentOffsetTop = $parent.scrollTop();
var parentOffsetLeft = $parent.scrollLeft();
var parentOffset = $parent.offset();
if (parentOffset) {
parentOffsetTop += parentOffset.top;
parentOffsetLeft += parentOffset.left;
}
parentOffset = {
left: parentOffsetLeft,
top: parentOffsetTop
};
var parentDimensions = {
width: $parent.outerWidth(),
height: $parent.outerHeight()
};
var childOffset = $child.offset();
var childDimensions = {
width: $child.outerWidth(),
height: $child.outerHeight()
};
return (childOffset.top >= parentOffset.top && childOffset.top <= (parentOffset.top + parentDimensions.height))
&& (childOffset.left >= parentOffset.left && childOffset.left <= (parentOffset.left + parentDimensions.width));
};
})(this, this.jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment