2

我在使用 slideDown 时遇到问题。元素开始“摇晃”而不是整齐地向下滑动,而不是立即出现而没有动画。另一方面,SlideUp 可以完美运行。

我做了一个jsFiddle:http: //jsfiddle.net/4x4PK/1/

+单击按钮时会出现问题。×按钮工作得很好。

有一些JS插件,有on.('click' ...)问题的代码一直在底部。

4

2 回答 2

3

好的,好像我找到了解决方案。问题是我认为 slideDown 函数需要在动画开始之前知道元素的高度(知道动画的端点)。

当我用 after() 添加元素时,现在判断它的高度还为时过早。

  • 该元素必须已经插入,否则它的高度为零。
  • 该元素必须不可见

最后我找到了这个可行的解决方案:

$(this).closest('.smoking-rate').after( $el );
$el.hide().slideDown()

有人可以确认,高度是它不起作用的原因吗?

于 2012-10-18T20:21:49.040 回答
0

您应该在 slideUp 动画完成后调用 slideDown:

$el.slideUp(1).slideDown('slow')

应该

$el.slideUp(1, function(){
  $el.slideDown('slow');
});
于 2012-10-18T20:15:05.113 回答