Scrolltop多次触发滚动事件;如何限制?

时间:2017-05-25 21:55:47

标签: javascript jquery css scrolltop smooth-scrolling

如果您不在页面顶部,我正在尝试更改导航栏。以下是有问题的JavaScript:

$('.myLinks a').click( function() {
    let idLink = $(this).text().toLowerCase()
     $('html, body').animate({
          scrollTop: $(`#${idLink}`).offset().top-80
     }, 800);
});

$(window).scroll(() => {
    let value = $(this).scrollTop()
    if (value > 80) {
        $('.myNav').css({'opacity':'1', 'height':'60px'})
    }
    else $('.myNav').css({'opacity':'0.5', 'height':'80px'})
})

第一个功能是平滑滚动到与链接相关联的div。但是,当我单击其中一个链接时,滚动值将重置为0(导航栏将重置为它在页面顶部的显示方式),然后导航栏将更改为应该如何。导航栏只会瞬间变化,但它仍然很明显。

我该如何解决这个问题?我可以根据需要提供更多细节。

解决:正如@MichaelCoker在下面所建议的那样,事实证明我的链接正在重定向到"#"在滚动到它应该的位置之前,导致跳转到位置0。

0 个答案:

没有答案