Javascript 使用onscroll not working动态更改div的高度

Javascript 使用onscroll not working动态更改div的高度,javascript,jquery,Javascript,Jquery,我正在尝试使用jquery来更改底部和顶部导航的div高度,如图所示 jquery是这样的: $(文档).ready(函数(){ var lastScrollTop=0; var-img=100; $(窗口)。滚动(函数(){ var st=$(this.scrollTop(); 如果(st>lastScrollTop){ //向下滚动代码 console.log('向下') img=img+1; $('.img')。高度(img); }否则如果(st

我正在尝试使用jquery来更改底部和顶部导航的div高度,如图所示

jquery是这样的:

$(文档).ready(函数(){
var lastScrollTop=0;
var-img=100;
$(窗口)。滚动(函数(){
var st=$(this.scrollTop();
如果(st>lastScrollTop){
//向下滚动代码
console.log('向下')
img=img+1;
$('.img')。高度(img);
}否则如果(st
正文{
高度:2000px;
}

向上和向下滚动并不总是以1为增量发生,因此不匹配。如果您缓慢向上滚动,其计数将超过向下滚动。相反,您需要做的是确定希望更改发生的断点。例如,您希望顶部导航栏在滚动时消失。顶部导航条的高度为50,因此当滚动条超过50时,将灰色条的位置固定在顶部。检查这个密码笔


我把
height
添加到你的代码片段中,现在它有了响应,但我认为需要在你的帖子中添加一些
html
。我投了更高的票,因为你基本上给了我答案!我将+1和-1更改为当前scrolltop与前一个scrolltop之间的差值,从而将div的大小更改为滚动的量。谢谢你的帮助!精彩的!很高兴我的回答帮助了你!你能帮我解决这个问题吗?你回答了我的问题。但我试图在这个网站上获得同样的效果,我似乎无法复制它。你能帮忙吗?嗨,很抱歉看到这个评论。我看到你已经在你的网站上实现了它。你还需要帮助吗?我在代码笔里的数学问题还没有解决。我似乎想不出办法让它发挥作用。
$(document).ready(function () {
  var lastScrollTop = 0;
  var img = 100;
  $(window).scroll(function () {
    var st = $(this).scrollTop();
    if(st >= 50) {
      $('.bottomnav').css({'position':'fixed', 'top':0});
    } else {
      $('.bottomnav').css({'position':'initial'});
    }
  }).scroll();
})