Если анимированный GIF (даже с очень небольшим сжатием палитры) все еще не работает, я бы попробовал другой подход. Это может быть больше проблем, чем оно того стоит; ошибка не возникает для меня в Safari, и я действительно думаю, что вы можете добиться этого с тщательно сжатым анимированным GIF, но тем не менее ...
Вместо того, чтобы каждый раз менять URL-адрес фонового изображения, возможно, IE и Safari будут работать лучше, если все изображения будут присутствовать на странице (расположенные абсолютно друг над другом), и вы вызовете .show()
и .hide()
соответственно.
Я бы сохранил все эти изображения (или объекты jQuery, содержащие теги <img>
) в массиве, и создал бы функцию, которая запускается каждые 100 мс через setInterval. Когда он запускается, .show()
'следующее' изображение в массиве, в то время как текущее видимое изображение сообщает .hide()
.
Таким образом, вы можете быть уверены, что в любой момент времени изображение всегда будет видимым и мерцания не будет.