在页面顶部添加特定类以滚动代码

时间:2017-05-23 20:51:23

标签: javascript jquery html css

我有以下代码,当用户滚动时,会将.nav-down.nav-up添加/删除到#nav。

jQuery(document).ready(function($){
  var didScroll;
  var lastScrollTop = 0;
  var delta = 5;
  var navbarHeight = $('nav').outerHeight();

$(window).scroll(function(event) { didScroll = true; });

setInterval(function() {
  if (didScroll) {
  hasScrolled();
  didScroll = false;
  }
 }, 150);

function hasScrolled() {
  if($( window ).width() > 768) {
  var st = $(this).scrollTop();
  if (Math.abs(lastScrollTop - st) <= delta)
    return;

  if (st > lastScrollTop && st > navbarHeight ) {

    // Scroll Down
    $('#s-nav').removeClass('nav-down').addClass('nav-up');

} else {

    // Scroll Up
    if (st + $(window).height() < $(document).height()) {
        $('#s-nav').removeClass('nav-up').addClass('nav-down');
    }
 }

} else {
$('#s-nav').removeClass('nav-up').addClass('nav-down');
}
lastScrollTop = st;
}
});   

当函数将.extra添加到#nav时,我想向#nav添加另一个名为.nav-down的类。但是我只希望它在用户位于页面顶部时添加它,而不是在任何时候添加它。因此,只有当用户位于页面顶部时才会添加。

1 个答案:

答案 0 :(得分:1)

查看 renderSquare(i) { return <Square value={ this.state.squares[i] } />; } 上的jQuery documentation。当你位于页面顶部时为0,所以你应该只有一个脚本在scrollTop()为0时设置类,否则将其删除。

例如:

$(window).scrollTop()

或类似的东西。