我最近開始使用JQuery並創建了一個小滑塊來顯示網站贊助商的標誌等。對於使用Firefox的我來說,它似乎可以正常工作。我決定在Chrome中加載該網站,並且表現得相當奇怪。動畫看起來很好,直到第一個div(滑塊被分成兩個div,以便第一個可以移動到結束,一旦它完成了它通過掩碼div)通過屏幕進入第二個(每個併發)傳遞。第一個div似乎更加迅速,並且超越了第二個div。任何想法會導致這種情況?它似乎只在Chrome和Safari中發生。 IE甚至工作!JQuery.animate()在一些瀏覽器上以不同的速度移動div
$(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'的元素。這不是有效的標記。 – 2012-03-28 20:25:21
感謝您的信息。我已經將它改爲class而不是id。不幸的是,性能沒有變化。 – 2012-03-28 20:35:29
請參閱下面的答案。 – 2012-03-28 21:02:11