2

我在用 jQuery 制作动画的包装器中有 3 个绝对定位的容器。

我的动画功能:

function slideContainer(container, easing, offset){
    direction = (container.hasClass('out')) ? '+' : '-';
    //margin = (container.hasClass('out')) ? 0 : -offset;
    container.stop().animate({
        left: direction+"="+offset
        //'margin-left' : margin
    }, 650, easing, function() {
        $(this).toggleClass('out');
    });
};

我在 Linux Box 上。在 Chrome 中,一切都按预期工作。但在 Firefox 25 中,我的容器的左侧位置会随机设置为不同的值。我刚刚在最新的 Firefox/Windows 上对此进行了测试。那里同样的问题。

这个小提琴中的所有内容:http: //jsfiddle.net/gebeer/F2DZH/ 单击导航项向左滑动,然后单击红色的 Subnav 容器向后滑动。

当我为左边距而不是左边位置设置动画时,它在两种浏览器中都可以正常工作。

任何人都可以确认这一点或指出我的代码中的错误吗?谢谢你。

更新:再摆弄一些时间后,我发现 FF 中的问题似乎与我使用的缓动功能有关。最初我使用来自 jquery.easing.1.3 插件的easeInBack 。当我使用标准摆动功能时,奇怪的行为停止了。

要重现这一点,只需更改小提琴中的 var easing。

我仍然想使用easeInBack。非常感谢我们如何解决 FF 问题的任何想法。

4

0 回答 0