0

我有一个导航栏,当用户向下滚动经过它时,我已将其位置更改为固定,反之亦然,当用户使用以下航点向上滚动经过该点时:

var $navbar = $('.navbar-default');

$navbar.waypoint(function(){
    if ($('#navigation-bar').hasClass('navbar')){
        $('#navigation-bar').toggleClass('navbar-fixed');
    } else{
        ($('#navigation-bar').toggleClass('navbar'));
    }
}, { offset: '28%' });

这可确保导航栏仅在特定点之后停留在用户屏幕上。这在大多数情况下都按预期工作,但是问题是如果用户向下滚动经过该航点然后刷新页面,导航栏将跳回其原始位置,如果您向上滚动经过它,则会导致未定义的行为。

有没有办法确保用户刷新时屏幕上的所有内容都保持在完全相同的位置?

4

1 回答 1

0

您可以window.scrollTo在页面加载时使用该功能

//scrollTo(x, y)
window.scrollTo(0, 0);

//the rest of your code...

每次页面加载时,这将滚动到页面的左上角。

编辑:

这个问题的答案也可能有效:

* {
  overflow-anchor: none;
}
于 2020-09-22T22:44:52.517 回答