function scroll_active() {
/* вычисляем значения прокрутки страницы по вертикали */
var window_top = $(window).scrollTop();
/* вычисляем положение якорей на странице от начала страницы по вертикали*/
var menu_top = $('a[name="menu"]').offset().top -10;
var gallery_top = $('a[name="gallery"]').offset().top -10;
/* раздел «Контакты» у меня на странице расположен самым последним разделом, и небольшой, поэтому если контаты уже отобразались на странице, тогда активирую пункт меню «Контакты» */
var contacts_top = $('a[name="contacts"]').offset().top - $(window).height() + 180;
/* Переключатель активного пункта меню в зависимости от положения на странице, условии написаны от последнего якоря на странице, до первого */
/* если на экране отображаются раздел «Контакты»*/
if (window_top > contacts_top) {
$(".main_menu li").removeClass("active");
$('a[href="#contacts"]').parent().addClass("active");
}
/* если не отображается раздел «Контакты», но страницу прокрутили ниже якоря третьего раздела*/
else if (window_top > gallery_top) {
$(".main_menu li").removeClass("active");
$('a[href="#gallery"]').parent().addClass("active");
}
/* если выше третьего, но ниже якоря второго раздела*/
else if (window_top > menu_top) {
$(".main_menu li").removeClass("active");
$('a[href="#menu"]').parent().addClass("active");
}
/* если не подходят условия предыдущие активируем первый пункт меню*/
else {
$(".main_menu li").removeClass("active");
$('a[href="#page_top"]').parent().addClass("active");
}
}
jQuery(function()
{
jQuery(window).scroll(scroll_active);
});