Для цели браузера я хочу изменить изображение src в анимированный gif только тогда, когда изображение анимируется.
$ (the_image_selector).animate({marginLeft: количество}, время);
Как мне это сделать?
Моя идея - изменить изображение на gif перед вызовом анимации, а затем использовать анимационный обратный вызов для изменения изображения. Это будет работать?
Да, я думаю, ваша стратегия будет работать, например
var image = $(the_image_selector);
image.attr('src', 'url to show while animated');
image.animate({marginLeft: amount}, time, function(){
image.attr('src', 'normal url');
});
вы можете запустить функцию, тогда анимация будет завершена. с 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');
});
});
Используйте следующее:
$(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);
Как отмечено в моем комментарии, это будет работать:
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);
});
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?
- да! попробуй