jquery - 如何设置带有淡入淡出( Sprite )背景图像的导航

标签 jquery css navigation hover fade

我设计了一个如下所示的 Sprite :

enter image description here

这个想法是让图像的上部在悬停时淡入(在导航系统中)。除了导航项的文本之外,我的一切都正常。正如您在 this page 上看到的那样,导航文本与背景图像一起淡入和淡出,因为它包含在淡出的范围内。我想知道是否有人可以帮助我弄清楚如何保持文本始终显示。

这是 html:

<ul class="navigation">
    <li><a href=""><span>home</span></a></li>
    <li><a href=""><span>contact</span></a></li>
</ul>

还有 CSS:

body, ul,li { 
    margin:0;
    padding:0;
}

ul {
    list-style:none;
    text-align: center;
    color: white;
    line-height: 30px;
}

ul a {
    text-decoration: none;
    color: white;
    font-size: 18px;
}

.navigation li { 
    background: url(nav.png) no-repeat 0 -30px;
    width: 223px;
    height: 30px;
}

.navigation li span {
    background: url(nav.png) no-repeat 0 0px;
    width: 223px;
    height: 30px;
    display: block;
    opacity: 0;
    filter: alpha(opacity=0);
}

和脚本:

$(document).ready(function() {
    $(".navigation li a").hover(function () {
        $(this).children("span").stop().animate({
            opacity: 1
        }, 300);
    }, function () {
        $(this).children("span").animate({
            opacity: 0
        }, 400);
    });
});

谢谢

尼克

最佳答案

这应该可以解决问题。实例:http://jsfiddle.net/zDwP9/2/

HTML:(将 span 移至 a 标记之外)

<ul class="navigation">
    <li><a href="">home</a><span></span></li>
    <li><a href="">contact</a><span></span></li>
</ul>

CSS 更改:(加宽 li、向左浮动 a 和向右浮动 span、调整宽度和背景位置跨度)

ul a {
    text-decoration: none;
    color: white;
    font-size: 18px;
    float:left;
    width: 204px;
}

.navigation li span {
    background: url(nav.png) no-repeat -204px 0;
    width: 30px;
    height: 30px;
    display: block;
    opacity: 0;
    filter: alpha(opacity=0);
    float:right;
}

jQuery/JavaScript:(将选择器从 li a 更改为 li)

$(document).ready(function() {
    $(".navigation li").hover(function () {
        $(this).children("span").stop().animate({
            opacity: 1
        }, 300);
    }, function () {
        $(this).children("span").animate({
            opacity: 0
        }, 400);
    });
});

关于jquery - 如何设置带有淡入淡出( Sprite )背景图像的导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974397/

相关文章:

jQuery 只执行最后一个事件

javascript - Jquery.find 返回的对象在 .data() 中表现异常

javascript - js或php函数前的下划线是什么意思?

javascript - jquery 加载图像到 div 奇怪的行为

html - 无法将鼠标悬停在我的 CodePen 元素中的虚拟链接上

css - 关闭 Canvas 菜单在内容很少的页面上被截断

java - JSF commandButton 操作返回正确的值,但导航规则不适用

jquery - 如何从tablesorter插件获取当前排序顺序?

javascript - 使用 anchor 可以使用 Javascript/不同方法处理浏览器后退按钮?

php - 断句的 css 属性