jQuery – Testa se o elemento está na janela de visualização

Acabei de encontrar essa belezinha …

Teste para determinar se um elemento está visível na janela de visualização do navegador.

Meus agradecimentos e elogios ao autor original.

$.fn.isOnScreen = function(){

var win = $(window);

var viewport = {
top
: win.scrollTop(),
left
: win.scrollLeft()
};
viewport
.right = viewport.left + win.width();
viewport
.bottom = viewport.top + win.height();

var bounds = this.offset();
bounds
.right = bounds.left + this.outerWidth();
bounds
.bottom = bounds.top + this.outerHeight();

return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));

};

Postagem original

Exemplo de jsFiddle

Respostas relacionadas:

fatal: recusar-se a mesclar histórias não relacionadas