0

我正在尝试对信息消息进行简单的 JQuery slideUp。问题是消息滑出干净,动画看起来很棒,但是我滑出的那个下面的 div 一直保持不变,直到动画完成,然后才跳到位。当我的消息消失时,我希望以下 div 向上滑动。

我已经尝试过更改 CSS 的几乎所有方面(例如删除位置:相对、未浮动容器等),但似乎没有任何效果。

这是Javascript:

$(function() {
    setTimeout(function(){
        $('.flash').slideUp('slow');
      }, 1000);
});

这是HTML:

<div class='page-content'>
  <div class='flash'>
    <div class='notice'>I'm testing the flash</div>
  </div>
  <div class='data-table'>
    ... The rest of the page ...
  </div>
</div>

这是相关的CSS:

.page-content {
  width: 95%;
  float: left;
  padding: 25px 2.5% 0;
}
.flash {
  background-color: #dcffb9;
  border: 1px solid #78b73f;
  border-bottom: 1px solid #d9d9d9;
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 15px;
  padding: 0;
  position: relative;
}
.flash .notice {
  background: url(../images/flash-notice-bg.gif) no-repeat 20px 50%;
  border-bottom: 1px solid #78b73f;
  padding: 20px 0 20px 70px;
}

任何帮助将不胜感激。

4

3 回答 3

4

问题是 margin-bottom: 15px; 在 .flash 元素上。确保将边距和填充设置为 0。

这是因为 slideUp 通过将高度降低到 0 来工作,但它不会改变边距。所以当元素完成向上滑动时,它仍然有 15px 的边距。最后一步是隐藏元素,此时边距也消失了,您会看到跳跃。

您可以保留 .flash .notice 上的边距

于 2009-07-12T18:21:43.780 回答
2

跟进,问题是当我包含 JQuery for Rails 支持 javascript 文件时。没有它,它滑动得很好。

JRails 出于某种原因重新定义了 slideUp 和 slideDown。有一个针对 JRails 的错误可以解决这个确切的问题:http ://code.google.com/p/ennerchi/issues/detail?id=43 。我按照错误提交者的建议做了,并重命名了幻灯片功能的 JRails 版本,我的东西现在可以正常工作了。

于 2009-07-12T19:32:39.347 回答
0

这是 jrails 中的一个已知错误...从 jrails 和 PRESTO 中删除 slideUp/slideDown 函数!希望这将在 jrails 的下一个版本中得到修复。

于 2009-11-05T17:27:17.760 回答