У меня есть много меток <img>
на одной странице HTML, некоторые из которых имеют один и тот же анимированный GIF-файл. URL-адрес src
динамически задается с помощью JavaScript, но с моим кодом одни и те же символы либо снова воспроизводятся, либо сразу же отображаются следующие символы с последним фреймом.Асинхронное воспроизведение нескольких тегов <img> с таким же анимированным GIF
Идея: Это для арт-проекта. После ввода некоторого текста символы отображаются специальным шрифтом, и некоторый переход выполняется символов на символ (один за другим), который я могу реализовать только с помощью анимированных GIF. Текст разбивается на отдельные символы и <img>
теги создаются следующим образом:
<!-- delivered HTML at page load -->
<img src="initial/f.png"> <!-- I used to PNG here to outline -->
<img src="initial/o.png"> <!-- the animation is NOT set a first -->
<img src="initial/o.png">
Когда анимация начинается первый <img>
«s URL устанавливается на transition/f.gif
. Только после того, как он закончил играть (определяется время) второе изображение установлено и т.д.
<!-- while 2nd animation is running -->
<img src="transition/f.gif"> <!-- already finished, displays last frame -->
<img src="transition/o.gif"> <!-- being animated right now -->
<img src="transition/o.png"> <!-- will be reset to o.gif in next step -->
проблема, которую я не могу решить: После o.gif
из примера игрался анимация следующего O Безразлично работайте правильно.
Я попытался определить класс для каждого символа и присвоить изображение как background-image
. Как только какое-либо появление символа сыграло какие-либо последующие вхождения одной и той же буквы, на дисплее отобразился последний кадр (конечное состояние) этого GIF.
Я также попытался установить атрибут src
непосредственно с помощью JavaScript, но когда вторая буква O установлена так, анимация первой буквы O перезапускается синхронно. Но он должен оставаться на последнем кадре.
Поскольку HTML-страница также должна работать на локальной файловой системе, я думаю, что аргументы, подобные o.gif?random=argument
для обхода механизма кэширования, не будут работать или не будут иметь никакого эффекта (возможно, на некоторых компьютерах само тестирование не будет фальсифицировать) ,
«специальный шрифт и некоторый переход осуществляется символом на символ (один за другим), который я могу реализовать только с помощью анимированных GIF» - я уверен, что вы можете сделать это, используя что-то еще, например. холст, особенно если это для арт-проекта, и поэтому, вероятно, он не заботится о поддержке браузера. – MMM
Поддержка широкого браузера не обязательно, но всегда хорошая. Анимации создаются самим художником, которые не могут писать код. Из-за ограничений времени и бюджета мы обязательно будем придерживаться файлов GIF. Легко здесь создать и меня использовать (помимо этой проблемы). –
Ненавижу рекомендовать интернет-скелит в шкафу, но вы считали Flash? Легко учиться, легче анимировать в большинстве GIF-аниматоров, и у вас есть полный контроль над синхронизацией и временем. –