以前どっかにあるライブラリ使っていたんですが、エラーが発生したので自分で書きました。
6行目でhtmlとbodyを両方指定しているところがミソです。
/**
* ページ内リンクでスムーズなリンク移動
* @param {object} obj -クリックされたオブジェクト
*/
function smoothScroll(obj){
var speed = 1000;
var href= obj.attr("href");
var target = $(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top;
$("html, body").animate({scrollTop:position}, speed, "swing");
return;
}
用意したらクリックで発動!
speedを変えれば移動速度を変更できます。
$(document).on('click','a[href^=#]',function(){
smoothScroll($(this));
});