Изменить изображение Src только при анимации его поля слева

0

Для цели браузера я хочу изменить изображение src в анимированный gif только тогда, когда изображение анимируется.

$ (the_image_selector).animate({marginLeft: количество}, время);

Как мне это сделать?

Моя идея - изменить изображение на gif перед вызовом анимации, а затем использовать анимационный обратный вызов для изменения изображения. Это будет работать?

  • 0
    My idea is to change the image to the gif before calling animate, then use animate's callback to change back the image. Will it work? - да! попробуй
Теги:
animation

4 ответа

2
Лучший ответ

Да, я думаю, ваша стратегия будет работать, например

var image = $(the_image_selector);

image.attr('src', 'url to show while animated');

image.animate({marginLeft: amount}, time, function(){
    image.attr('src', 'normal url');
});
2

вы можете запустить функцию, тогда анимация будет завершена. с jquery.com

$( "#clickme" ).click(function() {
  $( "#book" ).css('background-image','any-image.gif');
  $( "#book" ).animate({
    opacity: 0.25,
    left: "+=50",
  }, 5000, function() {
  // Animation complete.
     $( "#book" ).css('background-image','any-image.png');
  });
});
  • 0
    до анимации не после завершения !!!!
  • 0
    если совмещу мой и тебе ответь будет хорошо). после завершения анимации ему нужно поменять img обратно (png -> gif -> png)
Показать ещё 4 комментария
0

Используйте следующее:

$(the_image_selector).css('background-image','path-to-image');
$(the_image_selector).animate({marginLeft: amount}, time);

Или, объедините вот так:

$(the_image_selector).css('background-image','path-to-image').animate({marginLeft: amount}, time);

Или, если вы хотите изменить img src, тогда:

$(the_image_selector).attr('src','path-to-image').animate({marginLeft: amount}, time);
0

Демо-скрипт

Как отмечено в моем комментарии, это будет работать:

var src = $('img').attr('src');
$('img').attr('src', 'https://disney-animation.s3.amazonaws.com/uploads/production/project_image/frozen/72/image/project_image.jpg');
$('img').animate({
    marginLeft: '100px'
}, 2000, function () {
    $(this).attr('src', src);
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню