向下滚动时如何停止页面顶部的导航栏

Posted

技术标签:

【中文标题】向下滚动时如何停止页面顶部的导航栏【英文标题】:How to stop the navbar on the top of the page when scrolling down 【发布时间】:2013-07-30 14:30:28 【问题描述】:

我希望在向下滚动时将导航栏停止在页面顶部。

我知道 Jquery 以某种方式参与了解决方案,但我真的不知道如何使用它!

这是我的 header.php 文件(我在 wordpress CMS 上):

>
    <?php if (has_nav_menu('top-menu', 'responsive'))  ?>
        <?php wp_nav_menu(array(
                'container'       => '',
                'fallback_cb'     =>  false,
                'menu_class'      => 'top-menu',
                'theme_location'  => 'top-menu')
                ); 
            ?>
    <?php  ?>

<?php responsive_in_header(); // header hook ?>

<?php if ( get_header_image() != '' ) : ?>

    <div id="logo">
        <a href="<?php echo home_url('/'); ?>"><img src="<?php header_image(); ?>"    /></a>
    </div><!-- end of #logo -->

<?php endif; // header image was removed ?>

<?php if ( !get_header_image() ) : ?>

    <div id="logo">
        <span class="site-name"><a href="<?php echo home_url('/'); ?>" title="<?php echo esc_attr(get_bloginfo('name', 'display')); ?>" rel="home"><?php bloginfo('name'); ?></a></span>
        <span class="site-description"><?php bloginfo('description'); ?></span>
    </div><!-- end of #logo -->  

<?php endif; // header image was removed (again) ?>

<?php get_sidebar('top'); ?>
            <?php wp_nav_menu(array(
                'container'       => 'div',
                    'container_class'   => 'main-nav',
                    'fallback_cb'     =>  'responsive_fallback_menu',
                    'theme_location'  => 'header-menu')
                ); 
            ?>

        <?php if (has_nav_menu('sub-header-menu', 'responsive'))  ?>
            <?php wp_nav_menu(array(
                'container'       => '',
                'menu_class'      => 'sub-header-menu',
                'theme_location'  => 'sub-header-menu')
                ); 
            ?>
        <?php  ?>

        <?php responsive_header_bottom(); // after header content hook ?>

</div><!-- end of #header -->
<?php responsive_header_end(); // after header container hook ?>

<?php responsive_wrapper(); // before wrapper container hook ?>
<div id="wrapper" class="clearfix">
    <?php responsive_wrapper_top(); // before wrapper content hook ?>
    <?php responsive_in_wrapper(); // wrapper hook ?>

【问题讨论】:

你可能有 position:fixed;为您的导航栏? 不,它不是固定的。事实上,如果你向下滚动页面,它会移动。问题是我希望它在你滚动后固定在顶部! 那我真的不知道你的问题是什么?也许分享一个指向您网站的链接,以便我们查看。 你能举个例子说明你想要发生的事情吗? 【参考方案1】:

您可以通过使用 css 来实现此目的

thead position:fixed; top:0px;

查看此链接

http://jsfiddle.net/john_rock/h6hfX/1/

【讨论】:

【参考方案2】:

如果您希望它在向下滚动并回滚到之前的状态后保持在顶部,您可以使用 Anthony Garand 的 Sticky jQuery Plugin。只需将其附加到您的菜单上,通常:

$('.menu-main-menu-container').sticky(topSpacing:0);

【讨论】:

【参考方案3】:

我认为使用 jQuery Waypoints 可以非常轻松地完成您想要做的事情:http://imakewebthings.com/jquery-waypoints/

您可以在此处查看他们的“粘性”示例: http://imakewebthings.com/jquery-waypoints/shortcuts/sticky-elements/

如果这回答了您的问题,请标记为已接受。 :)

【讨论】:

以上是关于向下滚动时如何停止页面顶部的导航栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在页面顶部保留导航栏?

如何创建滚动后固定在顶部的粘性导航栏

如何在滚动时隐藏导航栏,除非在屏幕顶部

向下滚动页面时如何使导航栏改变颜色?

Safari 导航栏

如何让导航栏在滚动到设定点后松开?