JQuery仅在Safari中设置跳跃动画

JQuery仅在Safari中设置跳跃动画,jquery,safari,jquery-animate,css-float,Jquery,Safari,Jquery Animate,Css Float,我正在一个页面上工作,我想有一个隐藏的左侧导航栏。我只在Safari上遇到了这个问题,Chrome、FF、Opera和IE7+都没有问题 当滑动动画即将在Safari中完成时,您将看到一些内容短暂跳转到其原始位置,然后消失。我已经研究了一段时间,运气不好。看起来大部分时间都是填充或边距,但它们被设置为零,我尝试了两次CSS重置。在我看来,这似乎与花车有关。我试着玩得很好,但运气不好 以及相关动画: $('#btnHide').click(function() { $("#divNavC

我正在一个页面上工作,我想有一个隐藏的左侧导航栏。我只在Safari上遇到了这个问题,Chrome、FF、Opera和IE7+都没有问题

当滑动动画即将在Safari中完成时,您将看到一些内容短暂跳转到其原始位置,然后消失。我已经研究了一段时间,运气不好。看起来大部分时间都是填充或边距,但它们被设置为零,我尝试了两次CSS重置。在我看来,这似乎与花车有关。我试着玩得很好,但运气不好

以及相关动画:

$('#btnHide').click(function() {
    $("#divNavContent").animate({
        width: 'toggle'
    }, 1000, function() {
        $("#divNavHidden").animate({
            width: 'toggle'
        }, 500);
    });

});

$('#btnShowMenu').click(function() {
    $("#divNavHidden").animate({
        width: 'toggle'
    }, 500, function() {
        $("#divNavContent").animate({
            width: 'toggle'
        }, 1000);
    });
});  

出现问题的原因是
float:left
#divLeft
上,但您可以从
#divLeft
中删除浮动并保持相同的结构

同时添加
左边距:4px
#content
,因为移除浮动时两个div会有点挤压


似乎这更像是Safari中的一个bug,而不是你的错。

尝试将动画的easing属性更改为
“linear”
它看起来只是在动画期间设置宽度,然后将显示设置为none,并删除width属性,以便原始css接管,可能使用静态数字而不是“toggle”这样会更好吗?