0

jQueryウェイポイントを使用してスティッキーナビゲーションバーを作成しようとしています。私はJavascriptについて多くを知らないので、例からつなぎ合わせようとしています。

これが私が使用しているナビゲーションです:

    <section id="nav">

    <div class="container">
        <div id="mainnav">
            <nav id="myNavigation" class="horizontal_nav pageScrollerNav topNav sixteen columns alpha">
                <ul>
                    <li><a href="#"><i class="icon-home"></i> Home</a></li>
                    <li><a href="#"><i class="icon-picture"></i> Portfolio</a></li>
                    <li><a href="#"><i class="icon-list-ul"></i> Services</a></li>
                    <li><a href="#"><i class="icon-comments"></i> Contact</a></li>
                    <li><a href="#"><i class="icon-rss"></i> Follow Me</a></li>
                </ul>
            </nav>
        </div> <!--end mainnav-->
    </div> <!--end nav-container-->

</section> <!--end nav-->

そして、これが私がセットアップしたjQueryです:

    $(document).ready(function() {
    $('.top').addClass('hidden');
    $.waypoints.settings.scrollThrottle = 30;
    $('#mainnav').waypoint(function(event, direction) {
        $('.top').toggleClass('hidden', direction === "up");
    }, {
        offset: '-100%'
    }).find('#myNavigation').waypoint(function(event, direction) {
        $(this).parent().toggleClass('sticky', direction === "down");
        event.stopPropagation();
    });
});

よろしくお願いします!

4

1 に答える 1

0

次のようなクラスがあるとします。

.nav-fixed {
    position: fixed;
    top: 0;
    left: 0;
}

jQuery は次のように記述できます (Twitter の Bootstrap ドキュメント ページ用に記述されたコードを変更)。ナビゲーション要素を監視します。画面の上部に到達するとnav-fixed、要素をページの左上隅に固定するクラスを取得します。

var $window = $(window),
    $nav = $('#navigation'),
    nav_top = $nav.offset().top,
    isNavFixed = false;

$window.on('scroll',checkNav); // call function when page scrolls

checkNav(); // initial call to function on document ready

function checkNav() {
    var scroll_top = $window.scrollTop();

    if(scroll_top >= nav_top && !isNavFixed) {
        isNavFixed = true;
        $nav.addClass('nav-fixed');
    } else if(scroll_top <= nav_top && isNavFixed) {
        isNavFixed = false;
        $nav.removeClass('nav-fixed');
    }
}

ウェイポイント プラグインを使用するために、必要に応じてこのコードを変更できます。

于 2012-08-08T19:56:45.297 に答える