1

私は単一ページのサイトを持っており、メニューをクリックするとコンテンツが jquery で置き換えられます。アイテムは別のページにリンクしているわけではなく、別の div にリンクしていますが、非アクティブ、ホバー、および「現在のコンテンツ」(現在/アクティブなページのようですが、勝ちました) の 3 つのアクティビティ状態を持つ通常の Web サイトメニューのようにメニューを動作させたい実際には別のページにリンクしていません)。

個々のリンクがクリックされたときのホバーの色と「現在のコンテンツ」の状態に一致するようにします。(現在、「現在の」リンクを赤くするjqueryピースしかありません...可能であれば、より多くの制御が必要です)これが理にかなっていることを願っています...以下のコード!

HTML

<div id="sidebar">
    <nav>
    <ul id="nav">
        <li id="home"><a id="showdiv1">Home</a></li>
        <li id="about"><a id="showdiv2">About</a></li>
        <li id="demoReel"><a id="showdiv3">Demo Reel</a></li>
        <li id="contact"><a id="showdiv4">Contact</a></li>
    </ul><!-- /#nav -->
    </nav>
</div><!-- /#sidebar -->

<div id="content">
        <div id="div1">Blah blah!</div>
        <div id="div2" style="display:none;">Blardy blah!</div>
        <div id="div3" style="display:none;">Moo!</div>
        <div id="div4" style="display:none;">Shmeee!</div>
</div><!-- /#content -->

CSS

#sidebar {
float:right;
width:30%;
}

    ul#nav li#home a:hover { color:red;}

    ul#nav li#about a:hover { color:green; }

    ul#nav li#demoReel a:hover { color:blue; }

    ul#nav li#contact a:hover { color:yellow; }

    .active a { color:red; }

#content {
    float:left;
    width:60%;
}

Jクエリ

$(function() {

//Highlight active navigation link
$("ul").delegate("li", "click", function() {
    $(this).addClass("active").siblings().removeClass("active");
});


//Fade-in/hide selected navigation link
$('#showdiv1').click(function() {
    $('div[id^=div]').hide();
    $('#div1').fadeIn();
});
$('#showdiv2').click(function() {
    $('div[id^=div]').hide();
    $('#div2').fadeIn();
});

$('#showdiv3').click(function() {
    $('div[id^=div]').hide();
    $('#div3').fadeIn();
});

$('#showdiv4').click(function() {
    $('div[id^=div]').hide();
    $('#div4').fadeIn();
});

})

私はこのようなことに非常に慣れておらず、完全に独学であるため、エラーを許してください. さらに重要なことに、あなたの助けを事前にどうもありがとう!!!

4

1 に答える 1

2

ただの代わりに

.active a { color:red; }

交換してみてください

ul#nav li#home a:hover { color:red;}
ul#nav li#about a:hover { color:green; }
ul#nav li#demoReel a:hover { color:blue; }
ul#nav li#contact a:hover { color:yellow; }

ul#nav li#home a:hover, ul#nav li#home.active a { color:red;}
ul#nav li#about a:hover, ul#nav li#about.active a { color:green; }
ul#nav li#demoReel a:hover, ul#nav li#demoReel.active a { color:blue; }
ul#nav li#contact a:hover, ul#nav li#contact.active a { color:yellow; }

このようにして、各リンクはホバーされたとき、またはその親が「アクティブ」なときに特別な色を取得します。

于 2012-10-22T01:39:18.823 に答える