javascript - CSS Div 滚动高度

标签 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);
  }
});

谢谢!

最佳答案

虽然我说这不是你问题的解决方案,但看起来它实际上是一个解决方案。

在每个 Action 后添加一个类。每种情况下都有 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');
       });
      }
    }

});

header 应该以 expanded class 开头

关于javascript - CSS Div 滚动高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16994982/

相关文章:

javascript - scrollTop 损坏 : Body Height 100%, 自动溢出

javascript - JQuery ScrollTop 适用于 Chrome,但不适用于 Firefox

jQuery ('html.body' ),动画不起作用

javascript - React Native 选择器 : Set and Get different Picker Values

javascript - 获取引导模式链接的数据属性

javascript - 我可以将 Javascript 中的变量传递给 child_process.exec 命令吗?

html - 如何在不填满整个屏幕的情况下使用 Bootstrap 制作响应式侧边栏?

javascript - 无法在模型中提交表单 react

css - 表格单元格均匀性

css - 关于 base 64 编码及其浏览器支持的问题