jQuery动画Jumpiness

时间:2013-04-15 19:59:08

标签: jquery

我经常遇到这个问题,最后有动画跳跃或口吃。对此有一个共同的解决方法吗?

这是最后一个口吃的动画,http://jsfiddle.net/MqVcb/

单击菜单中的“向下滑动项目”链接以查看口吃。

这是jQuery代码,

var menu_ul = $('.left-sidebar-nav > li > ul'),
    menu_a  = $('.left-sidebar-nav > li > a');

menu_ul.hide();

menu_a.click(function(e) {
    e.preventDefault();

    if(!$(this).hasClass('active')) {
        menu_a.removeClass('active');
        menu_ul.filter(':visible').slideUp('normal');
        $(this).addClass('active').next().stop(true,true).slideDown('normal');
    } else {
        $(this).removeClass('active');
        $(this).next().stop(true,true).slideUp('normal');
    }

});

谢谢

2 个答案:

答案 0 :(得分:1)

css

.left-sidebar-nav li {
    margin-bottom: 8px;
}

正在搞乱事情。

删除它,你将看不到效果。

fiddle

要维护margin,请使用margin-top: 10px

这是新的fiddle

如果您不想要第一个元素的边距,

.left-sidebar-nav li:first-child {
    margin-top: 0;
}

答案 1 :(得分:0)

只包括溢出:隐藏;在css for li

li {
  overflow:hidden;
}

通常,在设置slideUp slideDown动画时,跳转与溢出的边距和填充没有被jquery考虑在内。

更新了jsfiddle:http://jsfiddle.net/MqVcb/3/