2010-08-26 214 views
4

我的slideToggle在幻灯片转换的底部有点跳动。那可能是因为那里有一个按钮或某个东西。任何方式使它更平滑。尝试使用缓解但不是很成功。任何建议SlideToggle缺陷

点击视频设置,看看自己 The site

$(document).ready(function() { 
    $('.drop').click(function() { 
    $(this).parent().next('li.drop_down').slideToggle(); 
    return false; 
    }); 
}); 

回答

4

给你li.drop_down一个固定的宽度。这应该清除它。我不记得这个的确切原因,但我只是在你的网站上测试它,并且它工作。

现在计算出的宽度是217px所以试试。

.drop_down { 
    width: 217px; 
} 

编辑:看起来你有一个.drop_down2.drop_down3以及(也许更多)。你需要为这些做同样的事情。我建议为每个类分配一个通用类。

1

尝试在动画之前存储每个项目的高度,然后在开始隐藏动画之前将该高度重新应用于元素。

这里有一个文章,我写的是如何与这样的一个例子: http://www.pewpewlaser.com/articles/jquery-smooth-animation

+0

重复涂抹高度似乎是没有必要的。在我自己的代码中,我能够将每个待切换元素的高度设置为其计算出的高度。像'$('dd')。each(function(i){this.style.height = $(this).height();});'在隐藏和应用slideToggle之前。 – chadoh 2012-10-04 14:53:46

+0

啊,我明白了。顺便说一句,你测试过什么版本的jQuery? – KatieK 2012-10-04 15:24:36

+0

jQuery 1.7.2。 :-) – chadoh 2012-10-04 17:55:12

0

固定宽度并没有为我工作,但什么做的是添加clearfix类的动画元素,因为我有里面有一些漂浮的元素。