2013-05-24 2 views
0

Мне был дан этот фантастический сценарий от @Phil, который помог вывести меня из пня, и он отлично работает в моем приложении. Но поскольку я так новичок в javascript, я не могу понять, как сделать изображение прозрачным и непрозрачным.jQuery fade image in и out при нажатии или загрузке

// jQuery syntactic sugar to run after page loads 
$(function() { 
    // attach a click event to anything with a data-file attribute 
    $("[data-file]").on('click', function (evt) { 
     // figure out what was clicked 
     var clickedEl = $(evt.target); 
     // get the data-file attribute 
     var dataFile = clickedEl.attr('data-file'); 
     var container = $(".bom_container"); 
     // empty the div 
     container.empty(); 
     // create image element 
     var img = $("<img/>").attr("src", dataFile) 
     // add it to the container 
     container.append(img); 
     // or update the background image 
     // container.css('background-image','url('+ dataFile +')'); 
    }); 
}); 

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

ответ

2

JQuery имеет большие .fadeIn() и .fadeOut() методы только для этого.

// jQuery syntactic sugar to run after page loads 
$(function() { 
    // attach a click event to anything with a data-file attribute 
    $("[data-file]").on('click', function (evt) { 
     // figure out what was clicked 
     var clickedEl = $(evt.target); 
     // get the data-file attribute 
     var dataFile = clickedEl.attr('data-file'); 
     var container = $(".bom_container"); 
     // empty the div 
     container.empty(); 
     // create image element 
     var img = $("<img/>").attr("src", dataFile).css("display","none") // <----- see here 
     // add it to the container 
     container.append(img); 
     img.fadeIn(/*duration in ms*/) // <----- see here 
     // or update the background image 
     // container.css('background-image','url('+ dataFile +')'); 
    }); 
}); 
+0

Это сделало мое изображение совсем не отображающимся. Интересно, почему. Я скопировал его именно так, как вы его написали. По-видимому, это сработает. –

+0

Извините, что начальный стиль должен быть 'display: none' вместо' opacity: 0' –

+0

Я сделал [скрипку] (http://jsfiddle.net/Rxte4/1/), чтобы продемонстрировать. просто нажмите кнопку. –

1

Перед изменением изображения src вы можете потушить изображение, изменить источник, а затем исчезнуть в новом изображении.

$('#img_selector').fadeOut('fast', function() { 
    $(this).attr("src", "newsource.jpg") 
    .fadeIn("fast"); 
}); 
+0

Hi, @Jako. Спасибо, что нашли время ответить. Это не сработало. Может быть, я буду писать более обычным для того, что у меня уже есть. –