//внутрь якорей вставляем пробел мелким шрифтом $('a[name]').html(' ').css('font-size','0.2em'); //вытаскиваем якоря и ставим выше родительских элементов H2 $('H2 a[name]').each(function() { $(this).css('position','absolute').insertBefore($(this).parent()); }); //находим все якорные ссылки, в которых есть решётка $('a[href^="#"]').click(function(e) { //убираем стандартное действие браузера e.preventDefault(); //по названию ссылки находим элемент, до которого надо докрутить var scroll_el=$('a[name="'+$(this).attr('href').split('#')[1]+'"]'); //если элемент найден, то if ($(scroll_el).length!=0) { //мгновенно скроллим до (Y-300), где Y — расстояние до элемента от начала страницы $('html,body').animate({scrollTop:$(scroll_el).offset().top-300},0); //а затем плавно, в течение 0,5 с скроллим до элемента $('html,body').animate({scrollTop:$(scroll_el).offset().top},500); //добавляем хеш к URL страницы window.location.hash=$(this).attr('href').split('#')[1]; } //возвращаем false, чтобы отключить стандартное действие по данной ссылке return false; });