I had some success in the following: where this_element, which is outside the viewport (above or below its borders), starts YOUR ACTION:
function scroll_to(this_element){ var banner_height = 145; var window_height = $(window).height(); var scroll_position = $(window).scrollTop(); var element_position = $(this_element).position().top; var element_height = $(this_element).height(); if(((banner_height + element_position) < scroll_position) || ((scroll_position + window_height) < (banner_height + element_position + element_height))){
source share