jQuery动画不精确

jQuery动画不精确,jquery,jquery-animate,slider,Jquery,Jquery Animate,Slider,我构建了使用jQuery的动画的滑块。幻灯片应向左和向右移动。 有时动画不精确1像素。假设它应该从左侧滑动到0像素,但在1像素处停止。至少在谷歌Chrome上,我遇到了这个问题。 为什么会这样?我该如何预防 下面是函数: var faces_width = 414; function facebox_next (id) { var index = parseInt($(id).attr("index")); index++; if(index <= $(id).c

我构建了使用jQuery的动画的滑块。幻灯片应向左和向右移动。 有时动画不精确1像素。假设它应该从左侧滑动到0像素,但在1像素处停止。至少在谷歌Chrome上,我遇到了这个问题。 为什么会这样?我该如何预防

下面是函数:

var faces_width = 414;

function facebox_next (id) {
    var index = parseInt($(id).attr("index"));
    index++;
    if(index <= $(id).children("img").size()-1) {
        $(id).attr("index",index);
        $(id).animate({
            "left":-faces_width*index
        },300);
        //$(id).css("left",-faces_width*index);
    }
}

function facebox_prev (id) {
    var index = parseInt($(id).attr("index"));
    index--;
    if(index >= 0) {
        $(id).attr("index",index);
        $(id).animate({
            "left":-faces_width*index
        },300);
        //$(id).css("left",-faces_width*index);
    }
}
var faces\u width=414;
功能面板盒\u下一步(id){
var index=parseInt($(id).attr(“index”);
索引++;
如果(索引=0){
$(id).attr(“索引”,索引);
$(id)。设置动画({
“左”:-faces_width*索引
},300);
//$(id).css(“左”,面宽度*索引);
}
}

小提琴:

我只需将
换面器
div更改为1px较小的宽度,这就解决了我的问题

div#facechanger {position:relative; height:542px; margin:32px 0;width:540px}

你说“有时”是什么意思?你能辨别出一种模式吗?当我在滑块项目上来回点击几次时,就会出现这种情况。它是否一致(就像总是在相同次数之后)?我还建议创建一个JSFIDLE,这样我们可以更仔细地看一看。不要嘲笑这些照片;)只需单击左右箭头几次,您就会看到。你应该使用Google Chrome,因为它似乎不在Firefox中出现。这似乎只适用于头部,而不适用于其他3个元素。我甚至没有注意到它发生在facet中。当涉及到像你这样的数学问题时,Chrome计算宽度设置存在已知的错误,因为Chrome比其他浏览器运行得更快,我建议在几个地方设置一个alert(),看看浏览器什么时候得到@manticore的值——不过这不是个好答案