приостановка GIF в JavaScript - PullRequest
4 голосов
/ 14 марта 2012

Фон : Попытка создать кнопку паузы в GIF, кросс-браузер

Начальная реализация (работает в Chrome / Safari): рисование GIF на холсте и отображениехолст правильно «приостанавливает» гифку.но в FF и IE он не работает (FF - показывает только первый кадр, IE - даже с excanvas показывает, что gif все еще анимирован, а не кадр)

Что делает паузу GIF в FF и IE? Нажатие кнопки ESC с выбранным окном приостанавливает изображения GIF на текущей отображаемой странице в FF и IE

Так что я пытаюсь сделать? Итак, для FF и IE я пыталсяреализовать что-то, что вызывает нажатие клавиши ESC ... и я сделал ... и это успешно вызывает нажатие клавиши ESC ... но это не останавливает GIF.

все, что я пытаюсь сделать, это симулировать побегнажатие клавиш в Firefox и IE.

То, что я пытался

// defined before the script that calls it
jQuery.fn.simulateKeyPress = function(keyCode) {
  // Internally calls jQuery.event.trigger
  // with arguments (Event, data, elem). That last arguments is very important!
jQuery(this).trigger({ type: 'keypress', which: keyCode, keyCode: keyCode });
};
// Simulate the key press, in something called onclick of a button element
$(document).simulateKeyPress(27);

, не советует мне этот код выше, потому что я скопировал соответствующие фрагменты, и я на 10000000% уверен, что он работает, так как я связалоповещение о нажатой клавише esc, которое появляется при нажатии кнопки, вызвавшей вызов simulateKeyPress ().только опубликовать его, чтобы показать, что я пытался.

Таким образом, симуляция ESC не делает то, что нажатие ESC делает в FF и IE, в отношении приостановки GIF, а именно нажатие ESC приостанавливает gifs в ff и т. д., изапуск события нажатия клавиши (также пробовал нажатие клавиши) для 27 (то есть ESC) не делает этого.Зачем?любой обходной путь вообще ???

1 Ответ

1 голос
/ 12 июня 2014

Преобразуйте кадры из gif в изображения спрайтов и установите их для фоновых изображений, циклически перемещая их, изменяя положение фона div с помощью javascript.Тогда было бы просто прервать интервальный таймер для любого выбранного вами события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...