【问题标题】:jQuery animate imprecisejQuery动画不精确
【发布时间】:2012-11-20 02:07:37
【问题描述】:

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

函数如下:

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);
    }
}

小提琴:http://jsfiddle.net/vXYdu/

【问题讨论】:

  • 当你说“有时”时,你是什么意思?你能辨别出一种模式吗?
  • 当我在滑块项目中来回单击几次时会发生这种情况。
  • 是否一致(总是在相同次数之后)?我还建议创建一个 JSFiddle,以便我们仔细查看。
  • 我做了一个小提琴。不要嘲笑图片;)只需单击左右箭头几次,您就会看到。您应该使用谷歌浏览器,因为它似乎不会在 Firefox 中发生。

标签: jquery jquery-animate slider


【解决方案1】:

我只需将 facechanger div 更改为小 1px 的宽度,就解决了我的问题

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

【讨论】:

  • 这似乎只适用于头部而不适用于其他 3 个元素。
  • 我什至没有注意到它发生在脸上
  • Chrome 在计算宽度设置时存在已知错误,因为 Chrome 运行速度比其他浏览器快,所以我建议在几个地方设置一个 alert() 以查看何时有价值浏览器正在获取@manticore
  • stackoverflow.com/questions/12468124/… - 虽然没有好的答案
猜你喜欢
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 2016-08-28
  • 2011-11-15
  • 2013-08-11
  • 2011-12-01
相关资源
最近更新 更多