jQuery链接必须单击两次才能滚动

时间:2018-11-07 08:47:24

标签: javascript jquery events hyperlink

我的网站侧边栏上有一些链接。链接具有班级补习。每次单击其中之一时,都必须单击两次以滚动到我的内容。第一次之后什么也没发生。我使用jQuery。

$(".sidebarelement").on("click", function () {
    var offset = $(':target').offset();
    if (offset) {
        var scrollto = offset.top - 158; // minus fixed header height
        $('html, body').animate({scrollTop: scrollto});
    }
});

我该如何解决?

1 个答案:

答案 0 :(得分:0)

对于遇到此问题的其他所有人,我都有解决方案。

这个想法是从单击的链接中获取href属性,并将其动画(滚动)到该位置。还要注意e.preventDefault()阻止链接跳到他的位置。

这是我的代码段。

    $(document).ready(function () {
    $('.sidebarelement').on("click", function () {
        var href = $(this).attr('href');
        $('html, body').animate({
            scrollTop: $(href).offset().top - document.getElementById('navDiv').clientHeight // minus fixed header height
        }, 'slow');
        e.preventDefault();
    });
});