我想在用户更改滚动条的高度时检测到。现在我已经检测到一次脚本(当用户向下移动滚动条时),但当你再次移动滚动条时没有任何反应。我的逻辑是,当用户将滚动条移动到大于296的位置时,会出现使用animate()的div,这是有效的。但是当用户将滚动条移动到小于296的位置时,div应该使用animate()消失。我的代码如下。有人可以帮忙吗?非常感谢。
$(window).scroll(function(){
var wintop = $(window).scrollTop();
var docheight = $(document).height();
var winheight = $(window).height();
var newWidthGrow = 500;
var smallHeight = 0;
var smallWidth = 0;
if(wintop > 296)
{
$("#slidebottom").animate({height:docheight +"px", width:newWidthGrow + "px"},'fast');
}
if(wintop < 296)
{
$("#slidebottom").animate({height:smallheight +"px", width:smallWidth + "px"}, 'fast');
}
});
答案 0 :(得分:1)
这里有两个问题:
您启动名为smallHeight
的变量但使用smallheight
,这会导致错误。
你应该在运行另一个动画之前添加.stop()
- 方法:
$("#slidebottom").stop().animate();
你应该考虑只运行一次动画,而不是任何时候触发scroll事件。布尔值在这里很有帮助:
if(wintop < 296 && expanded) {
expanded = false;
$("#slidebottom").stop().animate();
}
<强>演示强>