To effectively determine if a user has scrolled to or past the div with an id of "about," you first need to capture the current vertical position (Y value) of the div.
// Cache the "about" div
var about = $('#about');
// Store the initial position of the "about" div on window load
var aboutPosition = about.position();
Next, you'll have to calculate how much the user has scrolled. The most efficient method I've found is to use a timer. While you could utilize the scroll event, it can be resource-intensive for the browser and using a timer is typically imperceptible to users.
// Set up a timer to repeatedly check every 10 milliseconds
// with a callback function to process the logic
var checkScrollPos = window.setInterval("scrollTopLogic()", 10);
function scrollTopLogic() {
// If the Y position of the "about" div is greater than or equal to
// the current window scroll position, take action
if (aboutPosition.y >= $(window).scrollTop()) {
$('nav').show();
// Stop the timer since it's no longer necessary
window.clearInterval(checkScrollPos);
}
}