它仅在图像不重叠时才有效(见图)。在您的情况下,所有图像都具有完全相同的大小并且彼此堆叠。由于浏览器将图像视为实体对象(它们不关心透明度),因此无法确定您现在要悬停哪个图像?
+-----------+-----------+
| | |
| img1 | img2 |
| | |
| | |
+-----------+-----------+
| | |
| img3 | img4 |
| | |
| | |
+-----------+-----------+
但是,您可以解决此问题:
只需在包含所有区域的图像之一上使用单个图像映射,并使用一点 javascript,您就可以触发所有其他图像的悬停效果。
$("area").hover(function(){
var $target = $("#"+$(this).data("target")); // getting the target image
$target.attr("src",$target.attr("src").replace("slice","slice-focus")); //replacing the src with the src of the hover image
},function(){
var $target = $("#"+$(this).data("target"));
$target.attr("src",$target.attr("src").replace("focus-","")); //revert the changes
});
基于您的代码的工作示例:jsFiddle-Demo