Я собирался опубликовать аналогичный вопрос, когда поисковая система Superintelligent SO выделила этот вопрос для меня, поэтому я решил опубликовать свое собственное решение для потомков.
Я взял решение user113716 и уточнил егонемного.В моем случае div, который я скрывал и показывал, начинался как display:none
, поэтому мне пришлось добавить opacity:0
в CSS и сказать jQuery установить .css({display:block})
до того, как он начал анимировать прозрачность до 1
, чтобы исчезнуть.in.
При исчезновении это мне не понадобилось, но я добавил обратный вызов к .hide()
div после анимации непрозрачности до нуля.
Вот скрипка, иллюстрирующая, чтоЯ закончил с:
http://jsfiddle.net/mblase75/wx2MJ/
Соответствующий JavaScript:
$('li').mouseover(function() {
$(this).addClass('hover');
$('#' + $(this).data('divid')).stop().css({
display: 'block'
}).animate({
opacity: 1
}, 500);
});
$('li').mouseout(function() {
$(this).removeClass('hover');
$('#' + $(this).data('divid')).stop().animate({
opacity: 0
}, 500, function() {
$(this).hide();
});
});