制作一个 CSS 精灵图片,上半部分和下半部分分别是你想在它们之间动画的两个图片。jQuery 添加了一个 <span> 标签,并将精灵图片的下半部分作为其背景。当你在上面悬停和离开时,span 在完全透明和完全不透明之间动画,将一个图片淡入另一个图片。
HTML
<ul id="menu">
<li id="home"><a href="#">home</a></li>
<li id="about"><a href="#">about</a></li>
<li id="services"><a href="#">services</a></li>
<li id="contact"><a href="#">contact</a></li>
</ul>
CSS
ul#menu li a{float:left;display:block;background:url("images/menu.png") no-repeat;width:150px;text-indent:-9999px;height:50px}
ul#menu li#home a{background-position:0px 0px}
ul#menu li#about a{background-position:-150px 0px}
ul#menu li#services a{background-position:-300px 0px}
ul#menu li#contact a{background-position:-450px 0px}
ul#menu li a span {background:url("images/menu.png");height:50px;display:block}
ul#menu li#home a span{background-position:0px -50px}
ul#menu li#about a span{background-position:-150px -50px}
ul#menu li#services a span{background-position:-300px -50px}
ul#menu li#contact a span{background-position:-450px -50px}
jQuery
$(function() {
$("ul#menu li a").wrapInner("<span></span>");
$("ul#menu li a span").css({"opacity" : 0});
$("ul#menu li a").hover(function(){
$(this).children("span").animate({"opacity" : 1}, 400);
}, function(){
$(this).children("span").animate({"opacity" : 0}, 400);
});
});
您可以看到一个演示 这里:
演示在 IE7 中存在降级问题,
在 FF 中运行良好
Al
当然不适用于 IE6,
我用 jpg 测试过,它可以工作
unitpngfix 不适用于 IE6 中的 background-position
我认为当你将鼠标悬停在链接上时,这是一个有趣的效果
al
指向参考 URL 的链接是否已损坏?
Al
参考 URL 现在应该可以工作了,并且已停止 IE7 中的降级 - 感谢大家的提醒
此外,如何标记活动状态?我希望在选择后保持项目突出显示。
将一个类名应用于该锚标签
在 IE7 上的 W7 上仍然很恐怖
你能在垂直菜单中做到这一点吗?
是的,你可以,我做到了,很简单
非常棒的效果。我有一个第三种状态是活动的,它与纯 CSS 效果很好,但是当我将鼠标悬停在活动状态上时,它会显示悬停状态,我可以在允许普通标签淡入悬停状态的同时防止将此效果应用于活动的当前选定标签吗?任何帮助将不胜感激。谢谢。
我不知道我做错了什么,但我将代码复制粘贴到我的页面上,它会得到一个角度,
你可以在这里看到 :(
http://www.strongerorg.com/OrganisationSite/SpriteTest.aspx
我认为你应该在这里使用 .stop().animate(),如果你不希望图片在多次悬停后闪烁
嗨,
在 IE7 中,你应该定义一个
ul#menu li {display: inline; }
否则浏览器会显示“step”效果(从左到右步进)。我多次注意到 IE7 在水平列表中添加 display: block; 到 a 选择器时存在问题。有时我甚至不得不完全删除它,否则浏览器无法正确显示列表。
嗨,
它运行得很好,谢谢
但是我如何将其居中在我的网页上?
我尝试使用 DIV 属性,但它没有用…
这一切都很好,我可以看到它有效 - 但你没有解释将 jQuery 代码放在哪里,或者如何将其链接到特定任务 - 需要更多说明。
预览页面在我的杀毒软件中给我一个间谍软件警报
嗨,
我在让导航按钮保持在点击的按钮上处于活动状态时遇到问题。Alexandru Nastase(上面)提到了向锚添加一个 className,但你没有详细说明,我也无法弄清楚。所以我要问这个问题。如何让被点击的按钮保持悬停状态,同时将其他按钮重置为正常链接状态?
我已经把一切都设置好了,但我无法让它工作。
这个脚本是否只与 jquery-1.3.2.min.js 兼容?
我正在设置的网站使用的是 1.7.1
如果从参考 URL (http://charles-harvey.co.uk/plugins/animatedbackground/) 复制代码,如果遇到此问题,则插入 span 的第二行 jQuery 在第一个 span 标记中有一个空格 - 这会导致函数无法正常工作;)