Кажется, я помню, что с подобной проблемой, когда я создавал this сайт.
Решение должно использовать комбинацию .hover()
и .stop()
, чтобы гарантировать, что работает только одна анимация за один раз, что, я думаю, у вас есть. Кроме того, убедитесь, что изображение с надписью находится поверх другого изображения, и просто затухайте его. Затухание изображения становится «застревающим», потому что при некоторой непрозрачности .mouseleave()
прекращает стрельбу, а .mouseenter()
начинает стрелять по другому изображению.
Что-то вроде:
$$ = $("#image1");
$$.hover(function() {
$$.stop().animate({
opacity: 0
}, 1000);
}, function() {
$$.stop().animate({
opacity: 1
}, 1000);
});
#image1
должна быть выше #image2
для этого, чтобы работать, #image1
затухает на 'раскрыть' #image2
позади него. Код использует .animate()
, а не .fadeIn()
и .fadeOut()
, но эффект тот же.
Редактировать- Чтобы исчезнуть в другом div после окончания анимации fadeoout, воспользуйтесь полным обратным вызовом функции анимации.
Что-то вроде:
$$ = $("#image1");
$$.hover(function() {
$$.stop().animate({
opacity: 0
}, 1000);
}, function() {
$$.stop().animate({
opacity: 1
}, 1000, function() {
$("#finalDiv").animate({ opacity: 1, 500 });
});
});
#finalDiv
должен быть после того, как 2 <img />s
в вашем HTML, чтобы появиться над ними.
Создать JSFiddle? Вероятно, проблема не в этих строках. – frnhr
Я не вижу, что еще может быть проблемой, это единственный jQuery, который у меня есть. Я добавил связанный код. Где, по-вашему, может быть конфликт с ним? @frnhr – trev