Браузер: Продолжите gif анимацию после того, как Escape будет нажат

Firefox (и другие браузеры, которым я верю) останавливает gif анимацию, когда Вы нажимаете Кнопку остановки или вызываете ее через Клавишу выхода.

У меня есть ввод текста, который на изменении выполняет ajax запросы для обновления других элементов. Как часть этого ajaxyness у меня есть анимированный gif для показа обратной связи.
Я также захватываю нажатие клавиши выхода в этом входе, чтобы очистить текстовое поле для лучше UX.

Моя проблема после того, как клавиша выхода нажимается однажды, ни один из ajax gifs анимационный больше, пока страница не обновлена. Кто-либо знает обходное решение?


Материал я попробовал:

Я попробовал e.stopPropagation(); и e.cancelBubble = true; в функции, обрабатывающей e.keyCode == 27 и это, казалось, не работало. Я подозреваю, что это останавливает trigging, больше js событий и браузер ловят Escape независимо от js действия.

У меня есть gif, показывающий/скрывающий через добавление/удаление класса CSS, таким образом, трудно применить "изменение gif URL для сброса" обходного решения. Я даже не знаю, работает ли это так или иначе - не протестировал его. Но это кажется трудным. Если кто-либо знает, что это работает и знает о простом способе применить взлом с background-image: url(../images/ajax-loader_dotcirclel13x13.gif); CSS затем сообщены мне.

7
задан Matt Kocaj 26 May 2010 в 11:57
поделиться

3 ответа

К сожалению, вы не можете переопределить тот факт, что браузер останавливает анимированный gif при нажатии клавиши ESC. Я предполагаю, что это сделано для того, чтобы у пользователя всегда была возможность остановить надоедливые анимированные GIF-файлы, если они стали слишком подавляющими (я не говорю, что ваш загружаемый GIF-файл раздражает;)). Эта страница описывает, как их можно отключить все вместе в FF.

Я бы рекомендовал использовать JavaScript для создания простой анимации. Вы даже можете сделать это, используя спрайт со всеми кадрами из анимации gif и просто перемещая положение фона для каждого кадра.

9
ответ дан 6 December 2019 в 19:33
поделиться

Хорошо, вторая идея: Поместим загрузочный GIF в отдельный HTML-документ и покажем его в маленьком IFRAME без границ.

Я не имею никакого представления о том, сработает ли это, хотя. Есть шанс, что команда "Cancel" будет передана и всем дочерним IFRAME, так что вполне возможно, что нет.

0
ответ дан 6 December 2019 в 19:33
поделиться

Хм. Вы не думали об использовании вместо этого небольшой Flash-анимации типа «пожалуйста, подождите»?

Серьезно. Как показывает беглый тест, Flash игнорирует клавишу Esc .

Возможно, даже удастся импортировать анимированный GIF во Flash-ролик. Я не знаю.

Вы можете использовать JavaScript для создания резервной копии без Flash (вместо этого показывать исходный анимированный GIF).

0
ответ дан 6 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: