这是 jQuery 中广为人知的事情,因为 Internet Explorer 的鼠标离开功能是专有的。您将需要使用 jquery 的 mouseleave/mouseenter 方法。
这是您使用and方法更新的小提琴 小提琴。它可以工作并且已经在 IE7-9 中测试过了。mouseenter()
mouseleave()
为方便起见,我也在此处包含代码:
JS:
$(document).ready(function() {
$('#frame').mouseenter(function() {
var $this = $(this);
$this.append('<div id="overlay">blah blah</div>');
$this.addClass("hover");
}).mouseleave(function() {
$('#overlay').remove();
$(this).removeClass("hover");
});
$('#overlay').mouseleave(function() {
$(this).remove();
});
});
CSS:
#frame {
padding:5px;
border:1px solid black;
width:150px;
text-align:center;
position:relative;
}
#frame.hover {
border:1px solid red;
}
#frame img {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=25)";
filter: alpha(opacity=25);
-moz-opacity: 0.25;
opacity: 0.25;
}
#frame.hover img {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
-moz-opacity: 1;
opacity: 1;
}
#overlay {
background-color:black;
color:white;
height:25px;
width:100%;
font-size:10px;
position:absolute;
bottom:0;
left:0;
}
编辑:根据您在评论中描述的结果,我已经更新了我的小提琴和上面的代码。它应该完全有效 - 如果没有,请告诉我。
更详细一点:
该解决方案使用 jQuerymouseenter
和mouseleave
方法,因为 IE 使用该hover
方法存在许多问题。正如您可能知道或可能不知道的那样,hover
它是mouseenter
/的简写版本mouseleave
,但该方法存在许多问题,hover
从 IE6-9(也可能是 IE 10,尽管我没有测试过)。对于某些特定问题,请在 Stack Overflow 或 Google 中搜索“jQuery hover IE issues”并查看出现的一些结果。出于这个原因,我总是多花十秒钟来输入mouseenter
/mouseleave
而不是使用hover
,尤其是当我在 IE 中的代码已经遇到问题时。
如果您有任何问题/困难,请告诉我。祝你好运!:)