サイトのナビゲーションツールバーを作成中で、ホバー+クリックを機能させるのに苦労しています。私は何日も検索し、ライブサイトやチュートリアルのメソッドを使用して何度か再構築してきましたが、この単純な問題を解決することはできません。
問題:パッシブ、ホバー、アクティブの3つの状態を持つナビゲーションツールバーのスプライト画像があります。3つの状態すべてにクラスを設定していますが、jqueryでホバー状態を正しく表示することしかできません。
やりたいこと:カーソルをテキストの上に置いたときに、タグの下で実行されているスプライトのホバーセクションの不透明度をアニメーション化する必要があります(これは完全に機能し、フェードインおよびフェードアウトします)。次に、スプライトのアクティブセクションの不透明度をアニメートして、ホバースプライトからアクティブスプライトにフェードインするようにします。Webサイトも単一ページのナビゲーションになるため、別のボタンがクリックされたときにパッシブスプライトに戻るにはアクティブボタンが必要です。
これが私がこれまでに持っているものです:
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:
<!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>
私が目指している機能はここにあります:http://pixelpimps.net/# !/ home
画像スプライトを除いて、同じ機能(アニメーションにカーソルを合わせる、アニメーションをクリックする、アニメーションをクリックする)を実行しようとしています。
よろしくお願いします。他に必要なものがあればお問い合わせください。