CSS Div滚动高度

时间:2013-06-08 01:05:38

标签: javascript css scrolltop

我正在尝试重新创建此处显示的效果:http://jsfiddle.net/surendraVsingh/aATHd/2/

但是我想设置高度的动画。出于某种原因,当我向下滚动时它工作正常,但在向上滚动时,高度不会恢复正常。有什么想法吗?

以下是我现在的情况:http://justinledelson.com/new/

$(window).scroll(function(){
    if ($(this).scrollTop() > 250){
     $('#header').animate({"height":"100px"}, 1500);
  } 
  else{
    $('#header').animate({"height":"470px"}, 1);
  }
});

谢谢!

1 个答案:

答案 0 :(得分:0)

虽然我说这不是你问题的解决方案,但它似乎确实是一个解决方案。

在每个操作后添加一个类。对于每种情况都需要expandedcollapsed,并在进行动画之前检查该类是否存在。这样,动画在有必要之前不会触发。

这可以避免多次触发动画排队动画。这就是为什么如果你向下滚动很多次并滚动回到顶部,那么在你向上滚动之后很久就会触发“扩展”动画(它必须等待每个“折叠”动画结束)

我的测试是:

$(window).scroll(function(){ 
    var $header = $('#header');
    if ($(this).scrollTop() > 50){  // x should be from where you want this to happen from top//
     if (!$header.hasClass('collapsed')) {
       $header.animate({"height":"100px"}, 1500, function() {
         $header.toggleClass('expanded collapsed');
       });
     }
    } 
    else{
      if (!$header.hasClass('expanded')) {
        $header.animate({"height":"470px"}, 1, function() {
         $header.toggleClass('expanded collapsed');
       });
      }
    }

});

标题应以expanded

开头