我正在尝试复制此网站上的左侧导航栏:http://www.kahuna-webstudio.fr/。 正如您所看到的,当您向下滚动约200像素时,会出现左侧导航。我几乎遇到了一个问题:我目前正在动画我的div的高度和宽度。我想要做的是将左导航div的高度设置为文档高度,然后当您向下滚动296像素时,宽度将增加到150像素。希望有道理。
所以我的问题是:如何将此div的高度设置为文档高度,然后第二步是设置宽度的动画。
This is the line I am currently using:
$("#slidebottom").stop().animate({height:docheight +"px", width:newwidthgrow + "px"},'fast');
What I want to work, but is not working is:
slidebottomHeight = docheight;
$("#slidebottom").stop().animate({width:newwidthgrow + "px"},'slow');
这是我目前的代码:
$(window).scroll(function(){
var wintop = $(window).scrollTop();
var docheight = $(document).height();
var winheight = $(window).height();
var newwidthgrow = 150;
var smallheight = 0;
var smallwidth = 0;
var slidebottomHeight = $("slidebottom").height();
if((wintop > 296)) {
$("#slidebottom").stop().animate({height:docheight +"px", width:newwidthgrow + "px"},'fast');
}
if((wintop < 296))
{
$("#slidebottom").stop().animate({height:smallheight +"px", width:smallwidth + "px"}, 'fast');
}
});
答案 0 :(得分:2)
如果我理解正确,你想按顺序执行两个动作。如果是这种情况,您可以使用.animate
的回调。动画完成时执行此回调。因此你可以:
代码中的内容如下:
$("#slidebottom").stop().animate({width:newwidthgrow + "px"},'slow', function(){
$("#slidebottom").animate({
width:newwidthgrow + "px"
});
});
您可以详细了解回调和.animate
here。
答案 1 :(得分:1)
$("#slidebottom").stop().animate({
height:docheight +"px"
},'fast',function(){
// This is a callback function. It will be called when the animation
// has finished executing.
$("#slidebottom").stop().animate({
width:newwidthgrow + "px"
});
});