正如你在这里看到的那样:http://jsfiddle.net/huJ95/在div开始之前滚动停止(我相信5-10个像素)(文本是 - > div开始,所以用户需要向上滚动到看到了开头)为什么?我该如何解决这个问题? Jsfiddle中的HTML / CSS(我认为是无关紧要的)。
JS:
jQuery(document).ready(function($) {
$("nav").on("click", "a", function(e) {
e.preventDefault();
$('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});
});
答案 0 :(得分:3)
实际上它很简单,你没有考虑nav
的高度。因此内容位于页面顶部,而不是导航下方。您需要从计算中减去它,例如:
$('html,body').animate({scrollTop:$(this.hash).offset().top - $('nav').outerHeight()}, 500);
jsFiddle:http://jsfiddle.net/huJ95/2/