我在悬停时创建了一个带有预览图像弹出窗口的图片库。
将鼠标悬停在缩略图上并显示较大的图像预览。
我不满意预览图像在缩放图像周围移动之间的闪烁方式。如何简化脚本并改进预览图像弹出窗口?
$(document).ready(function() {
$('.imageGalleryAlbum li a img').mouseenter(function() {
$(this).closest('li').find('.preview').delay(500).fadeIn(1);
$(this).closest('li').siblings().find('.preview').fadeOut(1);
return;
});
$('.imageGalleryAlbum li .preview').hover(function() {
$(this).closest('li').siblings().find('.preview').fadeOut(1);
return;
});
$('.imageGalleryAlbum li .preview').mouseleave(function() {
$(this).closest('li').find('.preview').fadeOut(1);
$(this).closest('li').siblings().find('.preview').fadeOut(1);
return;
});
$('.imageGalleryAlbum li .preview').click(function() {
$(this).closest('li').find('.preview').fadeOut(1);
$(this).closest('li').siblings().find('.preview').fadeOut(1);
return;
});
});
$(document).mouseup(function(e) {
var container = $(".preview");
if (container.has(e.target).length === 0) {
container.fadeOut(1);
}
});
答案 0 :(得分:2)
第三次更新
试试这个
var x;
$(document).ready(function() {
$('.imageGalleryAlbum li a img').on('mouseenter', function() {
$('.preview').stop().hide();
x = $(this).closest('li').find('.preview');
if( $(x).is(':visible') ) {
$(x).show();
} else {
$('.preview').hide();
$(this).closest('li').find('.preview').stop().delay(500).fadeIn(0);
}
});
$('.preview').parent().on('click mouseleave', function() {
$('.preview').hide();
});
});
$(document).mouseup(function(e) {
var container = $(".preview");
if (container.has(e.target).length === 0) {
container.fadeOut(1);
}
});
答案 1 :(得分:0)
你可以尝试这个例子。
http://nemanjamilosavljevic.com/javascript/gallery_view/ 这是我制作的一个画廊,它可以满足您的需求,并且它允许用户移动鼠标,并且仍然可以打开大图像。
希望这种方法可以帮助您,或者您可以使用整个示例。
干杯;)