0

スティッキーヘッダーを上下にスライドさせてより多くのコンテンツを表示する、非常に基本的な表示/非表示機能があります。コンテナを開いたり閉じたりしたときにテキストを適切な表現に変更するトリガーを取得できましたが、追加されたテキストにも上矢印と下矢印のグリフを追加したいと思います。これはどのように達成できますか?

私が探している出力は次のようになります。
↓プレイリストを
展開する↑プレイリストを閉じる

これまでの私のマークアップは次のようになります。

HTML

<div id="sticky_header">
    <div id="sticky_content" class="player">
        <a href="#" id="toggle_sticky_header">Expand Playlist</a>
    </div>
</div>

CSS

/* 
-------------------------------------------------------------------------
Sticky Header
-------------------------------------------------------------------------
*/

#sticky_header {
    background-color: #000000;
    /* border-bottom: 5px solid #B54000; */
    border-bottom: 5px solid #0995B0;
    /* height: 100px; */
    height: 600px;
    min-width: 100%;
    width: 100%;
    position: fixed;
    top: -500px;
    left: 0px;
    z-index: 2000;

    box-shadow: 0px 1px 15px #000000;
    -moz-box-shadow: 0px 1px 15px #000000;
    -webkit-box-shadow: 0px 1px 15px #000000;
}

#sticky_content {
    margin: 0px auto;
    width: 990px;
    padding: 15px 0px;
    color: #FFFFFF;
    position: relative;
}

a#toggle_sticky_header {
    position: absolute;
    bottom: -560px;
    right: 0px;
    color: #0995B0;
    font-size: 10px;
    line-height: 10px;
    text-transform: uppercase;
}

JQUERY

<!-- Toggle sticky header -->
<script type="text/javascript">
$(document).ready(function(){

    $('#toggle_sticky_header').click(function(){
        if($("#sticky_header").css("top") == "-500px") {
          $("#sticky_header").animate({top: "0px"}, 500);
        } else {
          $("#sticky_header").animate({top: "-500px"}, 500);
        }

        $(this).toggleClass("active"); 

        if ($(this).html() == "Expand Playlist") {
            $(this).html("Close Playlist");
        }
        else if ($(this).html() == "Close Playlist") {
            $(this).html("Expand Playlist");
        }

        return false;
    });

});
</script>
4

1 に答える 1

1

を使用している場合html()、単純にhtmlエンティティを使用できます。

if ($(this).html() == "Expand Playlist") {
    $(this).html("&uarr; Close Playlist");
}
else if ($(this).html() == "Close Playlist") {
    $(this).html("&darr; Expand Playlist");
}

少し修正することをお勧めしますが:

$(this).html(function(i,h){
    return h == '&darr; Expand Playlist' ? '&darr; Expand Playlist' : '&uarr; Expand Playlist'
});

参照:

于 2013-03-21T21:10:34.207 に答える