Вы также можете сделать это, используя одно фоновое изображение и постепенно увеличивая и уменьшая прозрачный div. Вот быстрый пример, который может быть расширен для автоматической работы с одним классом изображения:
$(document).ready( function() {
$("#mask-div")
.css({
"position": "absolute",
"width": 275,
"height": 110,
"background": "rgba(255, 255, 255, 0.5)"
})
.mouseover( function() {
$(this).fadeOut("slow");
})
;
$("#test-img").mouseout( function() {
$("#mask-div").fadeIn("slow");
});
});
Работающую демонстрацию можно увидеть на jsbin: demo-one
ОБНОВЛЕНИЕ: Вот более общее решение (неполное, но показывает некоторые идеи): демо-два . Просто добавьте класс «fade-img» к любому изображению, для которого вы хотите получить этот эффект.
$(document).ready( function() {
$(".fade-img")
.before("<div class='fade-div'></div>")
.each( function() {
var img = $(this);
var prev = img.prev();
var pos = img.offset();
prev.css({ "height": img.height(), "width": img.width(), "top": pos.top, "left": pos.left })
.mouseover( function() {
$(this).fadeOut("slow");
}
);
})
.mouseout( function() {
$(this).prev().fadeIn("slow");
})
;
});