Недавно мы сделали анимацию GIF для нашего сайта. Одна из анимаций - это маркер на карте, который «прыгает» в воздухе. Наша идея состояла в том, чтобы маркер прыгал только один раз на мыши. Другими словами: он должен играть только один раз и не входить в бесконечный цикл при парях.JS/jQuery - Воспроизведение GIF только один раз при зависании
Я начал с чтения этого сообщения: Animating a gif on hover. Я использовал код, чтобы запустить анимацию при наведении и заменить ее статическим изображением на мыши.
Но это не приближает меня к тому, что я хочу. С помощью этого скрипта он продолжает играть в цикле, который является логическим, но именно того, чего мы не хотим. Кроме того, когда вы выходите мышь, мы хотим, чтобы GIF продолжал анимацию до тех пор, пока она не закончилась, и не сразу остановитесь. И последнее, но не менее важное: когда вы наводите курсор мыши, выведите мышь, а затем сразу же снова наведите указатель мыши во время анимации, он не должен перезапускаться, пока он все еще играет.
Как я понимаю, и что я не понимал, когда мы создаем анимацию, очень сложно управлять анимацией GIF с помощью jQuery.
Единственное, что я могу придумать, это работать со временем/продолжительностью анимации. Например. если анимация занимает 3 секунды, тогда мы могли бы заменить статическое изображение (при наведении) на GIF именно на такое количество времени. Мы могли бы даже написать универсальный скрипт для всех GIF, если мы передадим длительность в атрибуте данных в теге img. Но это будет означать написание большого количества кода, и это не похоже на самый простой способ для меня.
Есть ли у кого-нибудь идеи более простой способ достичь того, чего мы хотим? Я с нетерпением жду ваших слов об этом.
Как насчет того, чтобы переключать его как .mp4? – user2182349
http://stackoverflow.com/questions/16139629/can-jquery-know-when-my-animated-gif-has-ended здесь аналогичный вопрос, но не думайте, что есть простой способ сделать это, если вы конвертировать его в видео. Затем вы можете подождать, пока он не закончится. – khuderm
использовать несколько gifs –