【发布时间】:2016-03-17 21:40:33
【问题描述】:
我有一系列图像,它们在悬停时会改变它们的图像,并且在悬停期间在图像上还有一个 div 动画(作为叠加层)。
代码如下:
// hide overlays
$(".mini-shop .item .image a div").hide();
// toggle overlay and second image
$(".mini-shop .item .image").hover(
function() {
$img = $(this).find('a img');
$img.stop().hide();
var src = $img.attr('src');
$img.attr('src', $img.attr('data-csrc'));
$img.stop().fadeIn(300);
$img.attr('data-csrc', src);
$(this).find('a div').stop().animate({
'top': '80%'
}, 300).css('display', 'block');
},
function() {
$img = $(this).find('a img');
$img.stop().fadeOut(100);
var src = $img.attr('src');
$img.attr('src', $img.attr('data-csrc'));
$img.stop().fadeIn(300);
$img.attr('data-csrc', src);
$(this).find('a div').stop().animate({
'top': '100%'
}, 300).css('display', 'none');
}
);
我的问题是,只有第一个函数(mouseenter)中的效果有效,而在 mouseleave 方法中,覆盖立即消失,淡入淡出效果不起作用!这段代码有什么问题?
【问题讨论】:
-
可以创建一个jsfiddlejsfiddle.net来演示吗?
标签: javascript jquery html css