以前所有答案的问题是悬停图像未随页面加载,因此当浏览器调用它时,加载需要时间,而且整个事情看起来并不好。
我所做的是将原始图像和悬停图像放在 1 个元素中,并首先隐藏悬停图像。然后在悬停时我显示悬停图像并隐藏旧图像,在悬停时我做相反的事情。
HTML:
<span id="bellLogo" onmouseover="hvr(this, 'in')" onmouseleave="hvr(this, 'out')">
<img src="stylesheets/images/bell.png" class=bell col="g">
<img src="stylesheets/images/bell_hover.png" class=bell style="display:none" col="b">
</span>
JavaScript/jQuery:
function hvr(dom, action)
{
if (action == 'in')
{
$(dom).find("[col=g]").css("display", "none");
$(dom).find("[col=b]").css("display", "inline-block");
}
else
{
$(dom).find("[col=b]").css("display", "none");
$(dom).find("[col=g]").css("display", "inline-block");
}
}
这对我来说是最简单和最有效的方法。