【问题标题】:Do somenthing when scroll = 0 and something else when >< 0 with jQuery当滚动 = 0 时做一些事情,当 >< 0 使用 jQuery 做其他事情
【发布时间】:2014-05-14 12:14:36
【问题描述】:

我想知道是否可以根据滚动位置使 div 更改其宽度。我正在尝试这个:

$(document).scroll(function(){
    var img = $("#lip");
    middle = $('#middle').offset();
    var y = $(this).scrollTop();

    if(y < middle.top){
        img.animate({width: "400px"}, 1000);
    }else if(y > middle.top){
        img.animate({width: "100px"}, 1000);
    }
});

这段代码的问题是只有一个“如果”有效,如果我删除一个,另一个有效,但我希望它们一起工作!

HTML 是这样的:

<div id="header">
    <div id="lip">
        <img src="image.png" />
    </div>
</div>

<div id="middle">
    blablabla
</div>

【问题讨论】:

  • 我不明白你在这里的预期行为??? only one "if" work, if I delete one, the other works, but I want them working together! ??? if(y != 0){...}?!
  • 对不起,我不会说英语。我想要什么:当滚动= 0,然后“宽度:400px”//当滚动!= 0,然后“宽度:100px”
  • 所以您可以使用:if(y === 0){img.stop().animate({width: "400px"}, 1000);}else{img.stop().animate({width: "100px"}, 1000);},但请注意,您应该去抖动滚动事件:benalman.com/projects/jquery-throttle-debounce-plugin

标签: jquery scroll jquery-animate offset scrolltop


【解决方案1】:

也许你应该写

if(y < middle.top){
    img.animate({width: "400px"}, 1000);
}else{
    img.animate({width: "100px"}, 1000);
}

你应该在“如果”之前添加

console.log(y, middle.top)

并在使用滚动条的同时打开您的 JS 控制台以查看这些值

【讨论】:

  • 没用。 “if(y
  • console.log(y, middle.top) 返回什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 2015-11-01
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多