Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用hover+;点击图像精灵_Jquery_Css_Image_Sprite_Fade - Fatal编程技术网

Jquery 使用hover+;点击图像精灵

Jquery 使用hover+;点击图像精灵,jquery,css,image,sprite,fade,Jquery,Css,Image,Sprite,Fade,我正在为一个站点构建一个导航工具栏,并努力使鼠标悬停+单击工作。我已经搜索了好几天,并多次使用来自实时网站和教程的方法进行重建,但我无法解决这个简单的问题 问题: 我有一个导航工具栏精灵形象与三种状态,被动,悬停和主动。我为所有三种状态设置了类,但只能使悬停状态与jquery一起正确显示 我想做的是: 当光标悬停在文本上时,我希望它为运行在标记下的精灵的悬停部分设置不透明度的动画(它可以完美地工作并淡入淡出)。接下来,我想为精灵的活动部分设置不透明度动画,以便它也从悬停精灵淡入活动精灵。 该网站

我正在为一个站点构建一个导航工具栏,并努力使鼠标悬停+单击工作。我已经搜索了好几天,并多次使用来自实时网站和教程的方法进行重建,但我无法解决这个简单的问题

问题: 我有一个导航工具栏精灵形象与三种状态,被动,悬停和主动。我为所有三种状态设置了类,但只能使悬停状态与jquery一起正确显示

我想做的是: 当光标悬停在文本上时,我希望它为运行在标记下的精灵的悬停部分设置不透明度的动画(它可以完美地工作并淡入淡出)。接下来,我想为精灵的活动部分设置不透明度动画,以便它也从悬停精灵淡入活动精灵。 该网站也将是单页导航,所以我需要主动按钮返回到被动精灵时,另一个按钮被点击

以下是我目前掌握的情况:

CSS:
ul#navMenu {
width:1020px;
height: 110px;
list-style:none;
margin:250px auto;
}

ul#navMenu li {
float:left;
}



ul#navMenu li a {
background: url(menu-sprite.png) no-repeat scroll top left;
display: block; 
height: 110px;
text-indent: -9999px;
position:relative;

}


ul#navMenu li a.gallery {
    width: 230px; 
    background-position: 0 0;

}

ul#navMenu li a.wip {
    width: 229px; 
    background-position: -230px 0;  
}

ul#navMenu li a.home {
    width: 103px; 
    background-position: -459px 0;  
}

ul#navMenu li a.scripts {
    width: 229px; 
    background-position: -562px 0;  
}

ul#navMenu li a.contact {
    width: 229px; 
    background-position: -791px 0;  
}

ul#navMenu li a span {
background: url(menu-sprite.png) no-repeat scroll bottom left;
display: block;
position:absolute;
top:0px;
left:0px;
height:100%;
width:100%;
z-index:75;
}
ul#navMenu li a span:hover {
    cursor:pointer;
}   
    ul#navMenu li a.gallery span{
        background-position: 0 -110px;
    }

    ul#navMenu li a.wip span{
        background-position: -230px -110px; 
    }

    ul#navMenu li a.home span{
        background-position: -459px -110px; 
    }

    ul#navMenu li a.scripts span{
        background-position: -562px -110px; 
    }

    ul#navMenu li a.contact span{
        background-position: -791px -110px; 
    }

ul#navMenu li a :active span {
background: url(menu-sprite.png) no-repeat scroll bottom left;
display: block;
position:absolute;
top:0px;
left:0px;
height:100%;
width:100%;
z-index:100;
}       
        ul#navMenu li a span:active {
            cursor:pointer;
        }   

        ul#navMenu li a .gallery:active span {
            background-position: 0 -220px;  
        }

        ul#navMenu li a .wip:active span {
            background-position: -230px -220px; 
        }

        ul#navMenu li a .home:active span {
            background-position: -459px -220px; 
        }

        ul#navMenu li a .scripts:active span {
            background-position: -562px -220px; 
        }

        ul#navMenu li a .contact:active span {
            background-position: -791px -220px; 
        }

HTML:
导航菜单测试
$(函数(){
//在页面加载时将不透明度设置为nill
$(“ul#navMenu span”).css(“不透明度”,“0”);
//鼠标悬停
$(“ul#navMenu span”).mouseover(函数(){
//将不透明度设置为完全不透明度
$(this).stop().animate({
不透明度:1
}“慢”);
});
//老鼠出没
$(“ul#navMenu span”).mouseout(函数(){
//将不透明度设置为零
$(this).stop().animate({
不透明度:0
}“慢”);
});
//鼠标点击
$(“ul#navMenu:active span”)。单击(函数(){
//将不透明度设置为完全不透明度
$(this).unbind('mouseover'),
$(this).unbind('mouseout'),
$(this).stop().animate({
不透明度:1
}“慢”);
});
});
我想要的功能可以在这里找到:

我正在尝试完成相同的功能(悬停在动画上,单击动画,单击切换动画),除了图像精灵


提前谢谢,如果您还需要什么,请询问。

我相信在该网站上已经使用flash完成了


你可以试着让一个图像在每个跨度内,谁的
src
机会悬停。然后将
src
的图像设置为具有多个帧的gif图像。我现在正在编写一些代码来实现这一点。我会在几个小时内编辑并发布代码。也不要害怕尝试以自己的方式使用这个想法,我不是专家。

谢谢你的建议,我考虑过使用被动/主动状态精灵来达到这个效果,但不知道从哪里开始。我忘了提到我昨天真正进入了web开发,我对CSS和jQuery方面的几乎所有工作都是新手。我正在我的公文包网站上工作,我正在寻找一种模板无法复制的特定风格。在你弄明白之前,我一定会试试看我能走多远,再次感谢。这里是我到目前为止所走多远的更新,代码已经改变了一点,但我相当肯定我走错了路。我在这里运行它:所以您遇到的问题只是活动部分?看看这个,您可以在每次单击一个变量时设置一个变量。然后使用某种功能来更改精灵,并每秒使用
setInterval
大约十到十五次,这样看起来就可以了。不过我会继续研究另一个解决方案。谢谢Kbox提供的所有帮助,但它从今天早上起就开始工作了。我能让一个朋友找出丢失了什么。跨度已替换为相应的.hover和.active部分。对jquery的唯一更改是单击.removeclass(悬停)和.addclass(活动),然后单击.removeclass(活动)和.addclass(悬停)将其设置为活动。我感谢你的帮助,再次感谢
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>NavMenu Test</title>

<link rel="stylesheet" href="styles.css" />

 <script src="jquery-1.8.3.min.js" type="text/javascript"></script>
 <script type="text/javascript">
$(function() {
    // set opacity to nill on page load
    $("ul#navMenu span").css("opacity","0");
    // on mouse over
    $("ul#navMenu span").mouseover (function () {
        // animate opacity to full
        $(this).stop().animate({
            opacity: 1
        }, 'slow');
    });
    // on mouse out
    $("ul#navMenu span").mouseout (function () {
        // animate opacity to nill
        $(this).stop().animate({
            opacity: 0
        }, 'slow');
    });
    // on mouse click
    $("ul#navMenu :active span").click(function () {
        // animate opacity to full
        $(this).unbind('mouseover'),
        $(this).unbind('mouseout'),
        $(this).stop().animate({
            opacity: 1
        }, 'slow');
    });
});
</script>

</head>

<body>

<ul id="navMenu">
<li><a href="#" class="gallery"><span style="opacity: 0;"></span></a></li>
<li><a href="#" class="wip"><span style="opacity: 0;"></span></a></li>
<li><a href="#" class="home"><span style="opacity: 0;"></span></a></li>
<li><a href="#" class="scripts"><span style="opacity: 0;"></span></a></li>
<li><a href="#" class="contact"><span style="opacity: 0;"></span></a></li>
</ul>


</body>
</html>