Javascript chrome和opera中的jquery位置动画问题

Javascript chrome和opera中的jquery位置动画问题,javascript,jquery,css,animation,html,Javascript,Jquery,Css,Animation,Html,因此,我有一个具有以下css的div: #MyDiv { position: absolute; overflow: visible; top: 0px; right: 50%; width: 49%; height: 99%; min-width: 250px; min-height: 400px; max-width: 400px; max-height: 500px; background-color:

因此,我有一个具有以下css的div:

#MyDiv {
    position: absolute;
    overflow: visible;
    top: 0px;
    right: 50%;
    width: 49%;
    height: 99%;
    min-width: 250px;
    min-height: 400px;
    max-width: 400px;
    max-height: 500px;
    background-color: #FFFFFF;
    border: 1px solid #000000;
    margin: 0 auto;
    padding: 0px;
}
我用jquery将其设置为800像素的右侧动画。在firefox中,最终的位置是理想的,但是在chrome和opera中,这是错误的

    alert($("#MyDiv").position().left);
    $("#MyDiv").animate({left: "+=" + 800 + "px"}, 1000, "linear", function() {
        alert($("#MyDiv").position().left);
    });
在firefox中,初始左侧位置为23(第一个警报),最后为823(第二个警报) 在chrome和opera中,最终位置为800

我做错什么了吗?需要保持css不变

p、 ie8也有一些问题,但程度不如chrome和opera

提前谢谢


编辑jsIDLE:

为什么不在设置样式动画之前计算位置:

`var _left = $("#MyDiv").position().left + 800 + 'px';
$("#MyDiv").animate({left: _left}, 1000, "linear", function() {
    alert($("#MyDiv").position().left);
}); `   

另一种方法是设置css
left
属性,因为动画与css一起工作,这里并没有保证,left属性包含正确的计算数据,所以修复可能类似于

var mydiv=$("#MyDiv");
mydiv.css({left: mydiv.position().left});
动画制作前

使用console.log()在chrome中可以像预期的那样工作,你能让这个演示重复这个问题吗?初始位置3最终800,应为803yeap,应为804。3xxx@eicto甚至你的chrome演示版也从-2到800。Chrome24可能是唯一的解决方案,顺便说一句,在jQuery中,当你制作动画时,你不需要“px”