【问题标题】:jquery animate height bouncingjquery动画高度弹跳
【发布时间】:2012-04-20 00:05:57
【问题描述】:

我制作了一个脚本,将内容动态加载到 div 中,每当内容使 div 的高度变大或变小时,它都会将高度设置为实际高度。

问题在于它不仅向上/向下滑动,而且总是向上滑动一点,然后向下滑动到所需的高度。

我想让它直接在所需的高度滑动而不会“弹跳”。

这是脚本的一部分: main_content.html(html);

main_content.css("height", "auto");
var newContentHeight = main_content.height();
loader_div.hide();
main_content.height(prevContentHeight);
main_content.fadeIn("fast", function() {
    main_content.animate({
        "height": newContentHeight
        }, 300);
    });

脚本有效,唯一的问题是动画不会将 div 向上或向下滑动到所需的高度,它总是向上滑动一点然后向下滑动到所需的高度。

使用动画高度时是某种想要的动画还是有什么问题? 谢谢

编辑:控制台记录 newContentHeight(div 的最终高度)它看起来像收集了 2 个高度,然后动画首先到达其中一个高度,然后到达另一个高度,这就是它看起来像弹跳的原因。正在努力。

edit2:是的,问题确实存在,我清理了所有代码,一切正常,除了我使用 console.log 从 newContentHeight 获得 2 个属性,看起来隐藏的内容 div 有 2 个高度,而这 2 个高度是传递给 .animate 这就是为什么它先上升然后下降的原因...... 有点奇怪

【问题讨论】:

  • 你可以为此创建 jsfiddle 吗?
  • @Mateusz W 我昨天做了一个 jsfiddle 但忘记保存它,无法复制整个站点并且复制脚本工作得很好,但它不会有帮助。对它进行了一些工作,问题是我尝试在隐藏时获取 div 的高度,但它没有得到它,如果我在上面的代码中添加 main_content.css({display: "block"}); 然后得到 div 的高度,它得到正确的高度。但我需要隐藏它。使用 hack 也不起作用(以 -9999px 边距显示它,获取高度并再次隐藏它)。

标签: jquery css height jquery-animate slide


【解决方案1】:

我认为问题不是脚本,而是运行脚本的系统。把时间换成慢一点

main_content.animate({
"height": newContentHeight
}, 3000);

【讨论】:

    【解决方案2】:

    无法解决问题,我修改了下面的脚本,现在一切正常。 http://css-tricks.com/dynamic-page-replacing-content/ 它具有我正在寻找的确切动画(除了几个易于实施的步骤)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2012-03-01
      • 1970-01-01
      相关资源
      最近更新 更多