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 затем сообщены мне.
К сожалению, вы не можете переопределить тот факт, что браузер останавливает анимированный gif при нажатии клавиши ESC. Я предполагаю, что это сделано для того, чтобы у пользователя всегда была возможность остановить надоедливые анимированные GIF-файлы, если они стали слишком подавляющими (я не говорю, что ваш загружаемый GIF-файл раздражает;)). Эта страница описывает, как их можно отключить все вместе в FF.
Я бы рекомендовал использовать JavaScript для создания простой анимации. Вы даже можете сделать это, используя спрайт со всеми кадрами из анимации gif и просто перемещая положение фона для каждого кадра.
Хорошо, вторая идея: Поместим загрузочный
GIF в отдельный HTML-документ и покажем его в маленьком IFRAME
без границ.
Я не имею никакого представления о том, сработает ли это, хотя. Есть шанс, что команда "Cancel" будет передана и всем дочерним IFRAME, так что вполне возможно, что нет.
Хм. Вы не думали об использовании вместо этого небольшой Flash-анимации типа «пожалуйста, подождите»?
Серьезно. Как показывает беглый тест, Flash игнорирует клавишу Esc .
Возможно, даже удастся импортировать анимированный GIF во Flash-ролик. Я не знаю.
Вы можете использовать JavaScript для создания резервной копии без Flash (вместо этого показывать исходный анимированный GIF).