一页滚动错误的偏移与浮动菜单栏

时间:2014-10-09 09:22:17

标签: javascript jquery

我遇到了问题。我为朋友使用单页设计,顶部有固定的浮动菜单。我遇到的问题是,当我点击链接时,它会向下滚动,但偏移量不对。大部分时间它会向下滚动一点点覆盖菜单下方的内容。我想要实现的是滚动停在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放在不同的位置,但这也不能解决这个问题,只是进一步搞砸了。

我很感激一些见解。

1 个答案:

答案 0 :(得分:0)

window.location.hash = target; 

默认情况下将滚动移动到div位置,并且您在散列更改之前设置偏移顶部,因此首先它会在移动到div位置后更改偏移量。

在删除“window.location.hash = target;”行后首先尝试从代码 要么 移动“window.location.hash = target;”在“$('。wrapper')。animate({})”之上和之上“它会起作用。