Вот мой сайт: http://smartpeopletalkfast.co.uk/jquery/basicDemo12-bugfix-3.htm
Он отлично работает на firefox, chrome, safari и ie9, но запутывается в IE8 и 7.
Когда вы нажимаете на изображение, оно расширяется. Когда вы нажимаете на другое изображение, любые расширенные изображения сжимаются. Я думаю, что эта вторая часть jQuery вызывает проблемы. С IE8 и 7 анимация заканчивается в правильном месте, но все изображения прыгают до этого.
Вот код:
$(".image-div").click(function () {
var divRefTwo = $(".image-div").not(this);
$(".image-div").not(this).animate({
width: '250px',
left: '0px',
marginRight: '0px',
backgroundPosition: '-125px'
}, 400, function() {
$(divRefTwo).css('z-index','1');
});
if ($(this).css('z-index') == 1) {
$(this).css('z-index','2');
$(this).animate({
width: '500px',
left: '-125px',
marginRight: '-250px',
backgroundPosition: '0px'
}, 500, function() {
//
});
}
else {
var divRef = this;
$(this).animate({
width: '250px',
left: '0px',
marginRight: '0px',
backgroundPosition: '-125px'
}, 500, function() {
$(divRef).css('z-index','1');
});
}
});
Есть ли у кого-нибудь идеи, почему это происходит? Его довольно сложно отладить, поскольку проблема возникает только во время анимации.
Спасибо
UPDATE-Ive попытался добавить условные операторы только для запуска анимации (которая сжимает расширенные элементы), когда это необходимо, но при этом она не запускается вообще:
if ($(".image-div").not(this).css('width') == '500px') {
$(".image-div").not(this).animate({
width: '250px',
left: '0px',
marginRight: '0px',
backgroundPosition: '-125px'
}, 400, function() {
$(divRefTwo).css('z-index','1');
});
}
else {
}
UPDATE2 - Ive обновил последнюю демо: http://smartpeopletalkfast.co.uk/jquery2/basicDemo12-bugfix-6.htm
Условные утверждения не позволяют анимации запускаться в div, которые не должны расширяться. Таким образом, это фиксировало проблему всех прыжков с div.
Однако, когда анимация запускается при нажатии на div (как и предполагалось), этот div по-прежнему значительно расширяется на IE7 и 8. Похоже, что это связано с тем, что анимация в фоновом режиме анимируется странно.