我遇到了问题。我为朋友使用单页设计,顶部有固定的浮动菜单。我遇到的问题是,当我点击链接时,它会向下滚动,但偏移量不对。大部分时间它会向下滚动一点点覆盖菜单下方的内容。我想要实现的是滚动停在div正好在我的菜单栏下面。另一个问题是,当两个部分之间的空间太窄时,它不会向下滚动。尝试但不知何故只移动几个像素然后停止。我可以想象两者都与偏移问题有关。
对不起,英语不是我的母语。
这是我到目前为止所得到的。带有window.location.hash的标准滚动函数。目标是遍布整个网站的div。
$(document).ready(function () {
$('a[href^="#"]').on('click', function (e) {
e.preventDefault();
var target = this.hash;
var t = $(this.hash).offset().top;
$('.wrapper').animate({
scrollTop: t,
}, 1000, function () {
window.location.hash = target;
});
});
});
您可以看到实时问题的示例:http://rolfvohs.com/
到目前为止我尝试的是使用add.class函数在单击链接时将div与额外的填充绑定。它确实在某种程度上起作用,但却创造了一个尴尬的空间。我也尝试将div放在不同的位置,但这也不能解决这个问题,只是进一步搞砸了。
我很感激一些见解。
答案 0 :(得分:0)
window.location.hash = target;
默认情况下将滚动移动到div位置,并且您在散列更改之前设置偏移顶部,因此首先它会在移动到div位置后更改偏移量。
在删除“window.location.hash = target;”行后首先尝试从代码 要么 移动“window.location.hash = target;”在“$('。wrapper')。animate({})”之上和之上“它会起作用。