【发布时间】: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