Skip to content

Instantly share code, notes, and snippets.

@kjbrum
Last active March 15, 2017 20:10
Show Gist options
  • Save kjbrum/6616c7666869edcf27426dcccebe6418 to your computer and use it in GitHub Desktop.
Save kjbrum/6616c7666869edcf27426dcccebe6418 to your computer and use it in GitHub Desktop.
Test if an element is in the viewport.
var inViewport = function(el, side) {
var win = window;
var viewport = {
top: win.scrollY,
left: win.scrollX
};
viewport.right = viewport.left + win.outerWidth;
viewport.bottom = viewport.top + win.outerHeight;
var element = {
top: el.offsetTop,
left: el.offsetLeft
};
element.right = element.left + el.offsetWidth;
element.bottom = element.top + el.offsetHeight;
switch (side) {
case 'top':
return (viewport.top <= element.top);
break;
case 'right':
return (viewport.right >= element.right);
break;
case 'bottom':
return (viewport.bottom >= element.bottom);
break;
case 'left':
return (viewport.left <= element.left);
break;
default:
return (!(viewport.right <= element.left || viewport.left >= element.right || viewport.bottom <= element.top || viewport.top >= element.bottom));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment