У меня есть несколько небольших статических вспомогательных функций в классе Utils для таких случаев:
Utils = {
underView: function(element) {
return (($(window).height() + $(window).scrollTop()) <= element.offset().top);
},
aboveView: function(element) {
return ($(window).scrollTop() >= element.offset().top + element.height());
},
inView: function(element) {
return (Utils.aboveView(element) !== true && Utils.underView(element, element.height()) !== true);
}
};
Реализовано таким образом:
$(window).scroll(function(){
if(Utils.inView($(".div"))){
// do something
}
});