On gists
is element in view while a scrolling?
JavaScript
jQuery
demo.html
Raw
#
<h2>Scroll Down! ⇓</h2>
<span></span>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
scrollIntoView.js
Raw
#
function isScrolledIntoView(elem) {
var $window = $(window),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $(elem).offset().top,
elemBottom = elemTop + $(elem).outerHeight();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
$(window).on("scroll", function() {
// Example 1
if (isScrolledIntoView('span')) {
$('span').text('Hey there!');
} else {
$('span').text('Good bye!');
}
// Example 2
$('div').each(function() {
if (isScrolledIntoView(this)) {
$(this).addClass('red');
} else {
$(this).removeClass('red');
}
});
});