Skip to content

Instantly share code, notes, and snippets.

@ihorduchenko
Last active September 7, 2017 09:29
Show Gist options
  • Save ihorduchenko/14357b64a85fec3c2f2f70e8b244b5b7 to your computer and use it in GitHub Desktop.
Save ihorduchenko/14357b64a85fec3c2f2f70e8b244b5b7 to your computer and use it in GitHub Desktop.
Check if element in viewport and do something
$.fn.isInViewport = function() {
var elementTop = $(this).offset().top;
var elementBottom = elementTop + $(this).outerHeight();
var viewportTop = $(window).scrollTop();
var viewportBottom = viewportTop + $(window).height();
return elementBottom > viewportTop && elementTop < viewportBottom && elementBottom < viewportBottom && elementTop > viewportTop;
// return elementBottom > viewportTop && elementTop < viewportBottom;
};
$(window).on('resize scroll', function() {
$('.element').each(function() {
if ($(this).isInViewport()) {
$(this).find($('.item')).addClass('active');
} else {
$(this).find($('.item')).removeClass('active');
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment