Я создаю слайд-шоу анимаций с использованием анимированных GIF файлов. Я перекрестно от одной анимации к другой. Проблема заключается в следующем: единственный способ, которым я обнаружил, чтобы GIF начал анимацию из первого кадра, - это перезагружать его каждый раз, когда он отображается. GIF файлы составляют 200 КБ или около того, что является слишком большой пропускной способностью для непрерывного слайд-шоу.
Вот мой текущий код. img
и nextimg
являются тегами <div>
, содержащими один <img>
каждый. nextimg_img
- это тег <img>
, соответствующий следующему отображаемому изображению.
var tmp = nextimg_img.attr('src');
nextimg_img.attr('src', '');
setTimeout(function() { nextimg_img.attr('src', tmp); }, 0);
img.fadeOut('slow');
nextimg.fadeIn('slow');
Идея состоит в том, что она устанавливает атрибут src
следующего изображения в ''
, а затем возвращает его к источнику отображаемого GIF.
Это работает — он перезапускает анимацию с самого начала — но GIF, кажется, перезагружаются каждый раз, когда они отображаются.
EDIT: это циклическое слайд-шоу, и я стараюсь не перезагружать GIF из сети, когда они показывают второе/третье/последующее время.