带有平滑滚动的固定导航条出现跳跃问题

6
我在固定导航和平滑滚动方面遇到了各种问题。我对jQuery的了解不够,无法进行故障排除。我正在使用Chris Coyer的平滑滚动片段:http://css-tricks.com/snippets/jquery/smooth-scrolling/。我的页面在这里:http://clients.ekcetera.com/agivingchance
以下是我的问题:
  1. 对于任何导航项,它都会部分滚动,然后跳转到该位置。我相当确定这是因为我不知道如何考虑粘性标题,所以我将锚点上移一点以考虑锚点的高度。因此,它到达锚点并停止,但然后跳转到正确的视图。
  2. 单击后退按钮时,它似乎并不总是进入正确的位置-有时相当随机。我认为这与问题1有关,并希望它能自行解决。我甚至可以完全删除浏览器历史记录/后退按钮,但像我所说,我不是足够熟练的JQuery大师,不知道要删除什么。
有什么建议吗?
提前感谢!
1个回答

1

1. 使用Devin Sturgeon在Smooth Scrolling帖子中的评论中提供的代码。此外,我添加了一点减法来弥补您的粘性标题。根据需求进行调整。

// your functions go here 
$('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
        || location.hostname == this.hostname) {

        var target = $(this.hash);
        target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
           if (target.length) {
             $('html,body').animate({
                 scrollTop: target.offset().top - 181
            }, 1000);
            return false;
        }
    }
});

2. 将所有锚点移动到您想要滚动到的实际元素。

(参考:http://css-tricks.com/snippets/jquery/smooth-scrolling/#comment-197181)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接