代码之家  ›  专栏  ›  技术社区  ›  NullVoxPopuli

jquery:如何滑动页面,但只使用一个导航?

  •  1
  • NullVoxPopuli  · 技术社区  · 15 年前

    我发现这个教程: http://www.queness.com/post/356/create-a-vertical-horizontal-and-diagonal-sliding-content-website-with-jquery

    我喜欢这个网站滑动的方式: http://dknewmedia.com

    我该如何像dk new media那样使用滑动效果,但只使用一个导航?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Nithesh Chandra    15 年前

    您可以将导航元素放在包含页面其余部分的wrapper元素之外;绝对定位nav元素并上下移动wrapper。

    HTML:

    <ul id="nav">
        <li><a href="#page1">Page 1</a></li>
        <li><a href="#page2">Page 2</a></li>
        <li><a href="#page3">Page 3</a></li>
    </ul>
    <div id="wrapper">
        <div id="page1">Content for page 1</div>
        <div id="page2">Content for page 2</div>
        <div id="page3">Content for page 2</div>
    </div>
    

    CSS:

    #nav { position: absolute; top: 0; right: 50px; z-index: 50; }
    #nav > li { float: left; padding: 5px 10px; }
    #wrapper { height: 500px; overflow: hidden; position: relative; z-index: 20; }
    #wrapper > div { width: 100%; height: 500px; }
    

    JS:

    $(function() {
        $('#nav a').click(function() {
            pageId = $(this).attr('href');
            num = $('#nav a').index(this);
            $(pageId).parent().animate({scrollTop: (500 * num)}, 'slow');
        });
    });​
    

    你可以试试看 http://jsfiddle.net/L6Q5V/ 。您可能需要优化代码。

        2
  •  0
  •   Yan Ivanov    15 年前

    我认为,有两种方法可以实现这一点:1)您可以从动画区域中排除导航,2)您可以为导航和其他内容制作两个单独的动画,这样您的导航就会离开屏幕,然后从下面返回。这就是想法。