JQuery Fade In Attr Change - PullRequest
       6

JQuery Fade In Attr Change

3 голосов
/ 11 ноября 2010

Мне было интересно, можно ли добавить эффект fadeIn при изменении attr, например, у меня работает этот код, когда пользователь нажимает на img2, src imgmain изменяется на img2 так:

$('#img1').click(function() {
  $("#imgmain").attr("src","img1.jpg");
  });

  $('#img2').click(function() {
  $("#imgmain").attr("src","img2.jpg"); }

  );

Спасибо!

Ответы [ 5 ]

8 голосов
/ 11 ноября 2010

Вы можете изменить его в обратном вызове fadeOut(), например:

$('#img1').click(function() {
  $("#imgmain").fadeOut(function() {
    $(this).attr("src","img1.jpg").fadeIn();
  });
});
4 голосов
/ 11 ноября 2010
$('#img1').click(function() {
  $("#imgmain").fadeOut(function(){
  $(this).attr("src","img1.jpg");
  $(this).fadeIn();
  });
});
3 голосов
/ 17 января 2011

или ...!

$('#MRMBIG').fadeOut('slow').attr('src',imgsrcclickshode).fadeIn('slow'); 
2 голосов
/ 11 ноября 2010

Если вы используете ключевое слово this вместе с src, вам не нужно итерировать источник изображения.Например,

$('#img1').click(function() {
  var thisImage = this.src;
  $("#imgmain").fadeOut(function() {
    $(this).attr("src",thisImage).fadeIn();
  });
});

Еще лучше, вы должны дать этим изображениям также имя класса, таким образом, это относится ко всем им.Приведенный выше код будет работать только для первого изображения, в то время как приведенный ниже код, предполагая, что все они имеют большой класс, позволит вам указать все из них

$('.thumb').click(function() {
  var thisImage = this.src;
  $("#imgmain").fadeOut(function() {
    $(this).attr("src",thisImage).fadeIn();
  });
});
1 голос
/ 11 ноября 2010

В вашем коде есть избыточность.Лучше:

$('#img1, #img2').click(function() {
  var src = $(this).attr("src");
  $("#imgmain").fadeOut(function() {
    $(this).attr("src", src).fadeIn();
  });
});

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

$(".images").click( ...

...