Snake Eyes ответ является наиболее динамичным вариантом, поскольку вам не нужно кодировать каждый тег в js.Все, что клиент должен сделать, это использовать решение HTML, лучше для управления CMS.
Этот небольшой фрагмент кода - все, что вам нужно (ну, конечно, и jQuery)
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
Даже естьрешение для stickymenu в верхней части страницы, обратите внимание, чтобы заменить #main_menu на id или класс вашего меню:
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var height_menu = $("#main_menu").css("height");
height_menu = parseInt(height_menu,10);
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top - height_menu
}, 1000);
return false;
}
}
});
});