1

このJSFIDDLEにパンくずリストの動作デモがあります

以下はコードです

HTML

<div id="crumbs">
    <ul>
        <li><a href="#1">One</a></li>
        <li><a href="#2">Two</a></li>
    </ul>
</div>

CSS

#crumbs ul li {
    display: inline;
}

#crumbs ul li a {
    display: block;
    float: left;
    height: 50px;
    background: #3498db;
    text-align: center;
    padding: 30px 40px 0;
    position: relative;
    margin: 0 10px 0 0;
    font-size: 20px;
    text-decoration: none;
    color: #fff;
    padding: 30px 40px 0 80px;
}

#crumbs ul li a:after {
    content: "";
    border-top: 40px solid rgba(0,0,0,0);
    border-bottom: 40px solid rgba(0,0,0,0);
    border-left: 40px solid #3498DB;
    position: absolute;
    right: -40px;
    top: 0;
    z-index: 1;
}

#crumbs ul li a:before {
    content: "";
    border-top: 40px solid rgba(0,0,0,0);
    border-bottom: 40px solid rgba(0,0,0,0);
    border-left: 40px solid #fff;
    position: absolute;
    left: 0;
    top: 0;
}

#crumbs ul li a:hover {
    background: #fa5ba5;
}

#crumbs ul li a:hover:after {
    border-left-color: #fa5ba5;
}

Cssにはマウスホバー用のピンク色がありますが、実際にやりたいことは、パンくずリストのアイテムがクリックされたときにその色を保持することです。つまり、パンくずリストのどのタブのユーザーへのシグナルとして機能できるクリック後もピンク色が残るはずです現在アクティブです。

css で :active を使用してみましたが、クリック後にブレッドクラムの色が保持されません。

助けはありますか?

4

1 に答える 1

1

:visitedセレクターを使用する必要があります。このようなものはうまくいきます:

#crumbs ul li a:visited {
  background-color: #fa5ba5;
}

#crumbs ul li a:visited:after {
    border-left-color: #fa5ba5;
}

そしてJSフィドル:デモ

編集 (完全な JS メソッド):

完全な JS デモは、こちらの JSFiddle にあります。イベントでは、以前のアクティブなリンクからonclickクラスを削除するループがあります。.onclick

提供されたコードは改善する必要があります。これは、それが機能することを示すためのものです。

ネイティブ JS コードでの DOM 操作は非常に退屈なので、jQuery などのライブラリを使用することを強くお勧めします。

違いを示すには、jQuery でこれを行う必要があります。

HTML コード :

<div id="crumbs">
    <ul>
        <li><a class="link" href="#1">One</a></li>
        <li><a class="link" href="#2">Two</a></li>
    </ul>
</div>

JS コード :

$('.link').on('click', function() {   
    $('.onclick').removeClass('onclick'); // Remove class from previous active link
    $(this).addClass('onclick'); // Add class to new active link 
});
于 2013-09-24T08:44:46.380 に答える