Подтвердить что ты не робот

JQuery анимация при замене изображения

Надеюсь, вы можете посоветовать, я хотел бы добавить некоторые простые изменения в из замещения изображения, которые я подключил к select menu.ie,

$("#vehicle").change(function(){
    var selected = $(this).val();
    $("#selectedVehicle").attr('src', '/assets/images/mini/'+selected+'.png');
});

<img id="selectedVehicle" src="/assets/v2/images/select-vehicle.png">

любые предложения, как я могу это сделать?

4b9b3361

Ответ 1

Это будет работать лучше всего, если вы предварительно загрузите изображения.

$("#vehicle").change(function(){
    var selected = $(this).val();
    var image = $("#selectedVehicle");
    image.fadeOut('fast', function () {
        image.attr('src', '/assets/images/mini/'+selected+'.png');
        image.fadeIn('fast');
    });
});

Это приведет к исчезновению изображения, изменит значение src, а затем погаснет. Ссылка jQuery docs для получения дополнительной информации о затухающие функции.

Опять же, вы должны предварительно загружать изображения, иначе он может исчезать во время погрузки.

Ответ 2

Я отправился на предварительную загрузку изображения на загрузку страницы, а не на лету...:

$(document).ready(function () {
  function buildUrl(val) {
    return '/assets/images/mini/' + val + '.png';
  };

  $('#vehicle').change(function () {
    var value = $(this).val();

    $('#selectedVehicle').fadeOut('fast', function () {
      $(this).attr('src', buildUrl(value)).fadeIn('fast');
    });
  }).children('option').each(function () {
    var img = document.createElement("img");

    img.src = buildUrl($(this).val());
    img.onload = function () {};
  });
});