【发布时间】:2012-11-19 18:14:13
【问题描述】:
我的动画在 Google Chrome 中遇到了一个小问题。
以下是我正在使用的功能:
function moveRight(){
var x=parseInt($('#position').val(),10);
if(x==-7200){x=0;}
else{x-=900;}
$('#position').val(x);
$('#slides').animate({'left': x + 'px'}, 1000 );
}
function moveLeft(){
var x=parseInt($('#position').val(),10);
if(x==0){x=-7200;}
else{x+=900;}
$('#position').val(x);
$('#slides').animate({'left': x + 'px'}, 1000 );
}
我在页面上有一个隐藏的输入,它保持左右滑动的 div 的当前位置。
大约第 3 次或第 4 次单击右键 (moveRight();) 时,您会注意到它会跳跃,然后产生动画。 (在此处查看页面:http://ghcnow.com/savings-advantage.php)它在 Firefox 中没有这样做,似乎与 Chrome 有关。
我下载了最新版本的 jquery (1.7.2)
不知道除了重写整个东西还能做什么。
【问题讨论】:
-
"我下载了最新版本的 jquery (1.7.2)" 1.8.3 是最后一个
-
我在 Chrome 中没有看到问题。我多次单击右箭头,它每次都正常动画。为什么要将位置保留在输入字段中?您可以使用全局变量或 `$("#slides").data()'。然后,您也不必每次都解析它。 DOM 存储数据的效率不是很高。
-
这可能是由于机器速度较慢
-
大家好,感谢 cmets。所以我在我的另一台电脑上试了一下,它动画正确。我已经更新到 1.8.3(感谢烤)。我已经确定当您放大页面时会发生这种情况,但仍然只发生在 Chrome 中。因此,任何不以 100% 缩放查看页面的人都会遇到问题。现在问题不大,但仍然想知道是否有解决办法。
-
@jfriend00 我们的问题的答案或多或少是因为我不是一个日常程序员哈哈。自从您的帖子以来,我查看了 #slides 的 x 位置,但它是相对于窗口的。我向左或向右移动不会有问题,但我不确定我怎么知道我什么时候会在幻灯片的末尾。有什么建议吗?
标签: jquery google-chrome jquery-animate