我正在尝试制作一个简单的粘性标头,当用户滚动时,该标头将跟随用户进入页面。

到目前为止,我有:

$(document).scroll(function() {
      var topmarg = $(document).scrollTop();
      $('#stickyheader').animate({ marginTop : "+=" + topmarg + "px" }, "slow" );
  });


哪个可行,但似乎将金额“加”到marginTop,例如,如果我向下滚动200px然后向上备份100px,则#stickyheader实际上将页面向下移动300px,而不是向下移动200px再向后移动100px起来。

有没有办法修正这个?我应该改用.css()吗?

最佳答案

    var lastscroll=0;
    $(document).scroll(function() {

    var topmarg = $(document).scrollTop();
if(topmarg>lastscroll){
      $('#stickyheader').animate({ marginTop : "+=" + topmarg + "px" }, "slow" );
}else{

     $('#stickyheader').animate({ marginTop :  topmarg + "px" }, "slow" );
}
  lastscroll =topmarg;

});

10-05 22:00