我在用 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 问题的任何想法。