Я недавно начал использовать 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();
});
Вы можете увидеть это в действии здесь