Javascript Jquery动画方法不';在某些情况下我们不能跑步

Javascript Jquery动画方法不';在某些情况下我们不能跑步,javascript,jquery,html,Javascript,Jquery,Html,我正在使用jQuery的动画方法创建平滑的滚动效果,使导航栏的链接滚动到主页上的特定位置。。。万一我说的有点混乱 下面是我用来实现这一效果的一点javascript: $(document).ready(function(){ $('a[href^="/#"]').on('click',function (e) { e.preventDefault(); var target = this.hash; $target = $(target); $('h

我正在使用jQuery的动画方法创建平滑的滚动效果,使导航栏的链接滚动到主页上的特定位置。。。万一我说的有点混乱

下面是我用来实现这一效果的一点javascript:

$(document).ready(function(){
    $('a[href^="/#"]').on('click',function (e) {
    e.preventDefault();

    var target = this.hash;
    $target = $(target);

    $('html, body').stop().animate({
        'scrollTop': $target.offset().top-$('.navbar').height()
    }, 1000, 'swing', function () {
        window.location.hash = target-$('.navbar').height();
    });
    });
});
我们的主页按钮是:

<a class="navbar-brand" href="/#home_top"></a>

我们的关于我们的链接是:

<a href="/#about">About</a>

无论如何,当我键入url并直接导航到
domain.com
时,滚动功能非常有效。我可以向下滚动到“关于我们”部分(或任何其他部分),然后单击我们的主页按钮返回页面顶部

当我使用“主页”按钮从网站上的其他页面导航到主页时,问题就出现了。比如说,我在
domain.com/other_page
,我点击home按钮回到
domain.com
的主页。主页已加载,但用于滚动的javascript不起作用。只有我刷新一次,它才能再次工作;那么一切都好了


不管怎样,如果问题有点复杂,我很抱歉。在此问题上的任何帮助都将不胜感激。

这应该是什么:
target-$('.navbar').height()?你在从字符串中减去一个数字?@jfriend00谢谢你的回复。这样可以防止潜水器爬到导航栏下面,这对我来说毫无意义。您正在尝试这样做
window.location.hash=“#home”-20