В вашем конкретном jsFiddle, используйте это:
$('#show').hover(function() {
$(this).stop(true).fadeTo("slow", 0);
}, function() {
$(this).stop(true).fadeTo("slow", 1);
});
Вы можете увидеть, как это работает здесь: http://jsfiddle.net/jfriend00/BJwn7/.
Они указывают, что вы не можете использовать .fadeOut()
и .fadeIn()
потому что, когда они сделаны, они устанавливают display: none
, что приводит к скрытию элемента и нарушает функцию .hover()
.Итак, вместо этого просто уменьшите непрозрачность до 0 (но наведение остается в силе), а затем, когда наведение исчезнет, верните обратно к непрозрачности 1.
Мне также пришлось удалить CSS непрозрачности для красного блока изваш jsFiddle, потому что вы хотите, чтобы он был виден при исчезновении изображения, поэтому вы можете просто оставить его видимым за изображением.
Если вы хотели, чтобы эффект был только в браузере, поддерживающем переходы CSS3 (пока нет версии IE), то вы также можете сделать это без jQuery / javascript и просто использовать переходы CSS3.Но для чего-то столь же простого, как это, когда у вас уже есть jQuery, довольно просто просто использовать jQuery-фейды и получить поддержку кросс-браузера.