【发布时间】:2012-04-12 11:46:28
【问题描述】:
我最近开始使用 JQuery 并创建了一个小滑块来显示网站赞助商的徽标等。使用 Firefox 对我来说似乎工作正常。我决定在 Chrome 中加载该网站,它的行为相当奇怪。动画看起来很好,直到第一个 div(滑块被分成两个 div,因此第一个可以在完成它通过掩蔽 div 后移动到末尾)进入屏幕以进行第二个(以及每个并发)通过。第一个 div 似乎移动得更快,并超过了第二个 div。有什么想法会导致这种情况吗?它似乎只发生在 Chrome 和 Safari 中。 IE 也能正常工作!
$(document).ready(function () {
var s1 = $("div[name=s1]");
var s2 = $("div[name=s2]");
var release = 0;
var speed = 75; //px per sec
var interval = 100; //milliseconds per animation
var origSpeed = speed;
function slide() {
release = 1 - release;
if (release == 0) {
return;
}
distance = "+=" + (parseInt(s1.width(), 10) + parseInt(s2.width(), 10)) + "px";
if ((-1 * parseInt(s1.css("left"), 10)) > parseInt(s1.width(), 10)) {
s1.css({left: distance});
}
if ((-1 * parseInt(s2.css("left"), 10)) > (parseInt(s1.width(), 10) + parseInt(s2.width(), 10))) {
s2.css({left: distance});
}
slide_again();
}
function slide_again() {
$("div[id=slider]").animate({left: "-=" + interval * (speed / 1000) + "px"}, interval, "linear", slide);
}
$("div[id=slider]").hover(function() {
speed = 0;
}, function() {
speed = origSpeed;
});
slide();
});
你可以看到它在行动here
【问题讨论】:
-
你不应该有两个元素具有相同的
id。这不是有效的标记。 -
感谢您的信息。我已将其更改为 class 而不是 id。不幸的是,性能没有变化。
标签: jquery google-chrome jquery-animate