JQuery Animate Jumpy 仅在 Safari 中

标签 jquery safari jquery-animate css-float

我正在开发一个页面,我想要一个隐藏的左侧导航栏。我仅在 Safari 中遇到问题,在 Chrome、FF、Opera、IE7+ 中没有问题。

当 Safari 中的滑动动画即将完成时,您会看到一些内容短暂跳转到其原始位置,然后消失。我已经研究了一段时间但运气不佳。看起来大多数时候都是填充或边距,但它们被设置为零,并且我尝试了两次 CSS 重置。在我看来,这似乎与 float 有关。我尝试用 Clear 玩,但没有成功。

Here is a demo

以及相关动画:

$('#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);
    });
});  

最佳答案

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

还要向 #content 添加 margin-left: 4px;,因为当您移除 float 时,两个 div 会被挤压。

看起来这更像是 Safari 中的一个错误,而不是你的错。

关于JQuery Animate Jumpy 仅在 Safari 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12680241/

相关文章:

javascript - AJAX POST 返回 404 Spring

javascript - SVG <脚本> 元素 : inside or outside?

javascript - 如何设置onclick自动重复?或者它有自动重复功能?

javascript - Safari 拖放幽灵元素不可见

javascript - 将 jQuery 传递给 .animate 回调

javascript - 未捕获的类型错误 : Cannot use 'in' operator to search for 'scrollLeft' in undefined

jquery - 如何让jquery倒计时器正常工作

javascript - safari 开发者工具 如何查看来自 iframe 的表达式?

javascript - Safari:更改源然后直接调用 play 会引发 DOMError aborterror

javascript - 当文本在里面时,jquery animate 导致 div 为 'jump'