特定のリンクがクリックされたときに特定の div を表示するために JQuery を使用しています。body
タグのIDを指定し、IDが見つかったときにcssを使用してスタイルを設定することで、メインのナビゲーションバーに目的の効果を適用することができました。
ただし、特定のdivが存在する場合、サブナビゲーションに同じ効果を適用したいと思います。
メイン ナビゲーションのスタイル:
HTML:
<nav>
<ul>
<li id="nav-home"><a href="index.html">Home</a></li>
<li id="nav-showreel"><a href="showreel.html">Showreel</a></li>
<li id="nav-portfolio"><a href="portfolio.html">Portfolio</a></li>
<li>Contact</li>
</ul>
</nav>
CSS:
body#home li#nav-home,
body#portfolio li#nav-portfolio
{
background: url("Images/Nav_Underline.png") no-repeat;
background-position: center bottom;
color: white;
}
(これらのページはまだ開発中のため、スタイリングに他のリンクは追加されていません)
サブ ナビゲーションの構造:
<nav id="portfolioNav">
<ul>
<li id="portfolio-compositing"><a id="compositingWork" href="#">Compositing</a></li>
<li id="portfolio-animation"><a id="animationWork" href="#">Animation</a></li>
<li id="portfolio-motionGfx"><a id="GFXWork" href="#">Motion Graphics</a></li>
<li id="portfolio-3D"><a id="3DWork" href="#">3D</a></li>
</ul>
</nav>
ご覧のとおり、メイン ナビゲーションと同様の形式ですが、同じアプローチを試してみましたが、うまくいきません :(
ナビゲーションクリックでdivを切り替えるJavascript:
<script type="text/javascript">
$(document).ready(function() {
$('#3DWork').click(function(){
$('#portfolioWork').load('portfolioContent.html #Portfolio3D');
});
$('#GFXWork').click(function(){
$('#portfolioWork').load('portfolioContent.html #motionGraphics');
});
$('#compositingWork').click(function(){
$('#portfolioWork').load('portfolioContent.html #PortfolioCompositing');
});
$('#animationWork').click(function(){
$('#portfolioWork').load('portfolioContent.html #PortfolioAnimation');
});
});
</script>
完全な HTML および CSS の JSFiddle : JSFiddle ファイル
私が求めている効果: