我想将我的导航和子导航包装在一个 div 中,一旦用户滚动到顶部,该 div 就会固定。我正在使用 _s 入门主题。我的主题叫做测试。
这是我的导航代码和包装器(我没有 subnav,因为我想先解决这个问题):
<div id='fixed-nav'>
<nav id="site-navigation" class="main-navigation" role="navigation">
<h1 class="menu-toggle"><?php _e( 'Menu', 'test' ); ?></h1>
<div class="skip-link"><a class="screen-reader-text" href="#content"><?php _e( 'Skip to content', 'test' ); ?></a></div>
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
</nav><!-- #site-navigation -->
这是我的CSS:
#fixed-nav {
border: 0;
background-color: #202020;
border-radius: 0px;
margin-bottom: 0;
height: 30px;
}
.navbar-fixed {
top: 0;
z-index: 100;
position: fixed;
width: 100%;
}
这是我的function.php:
function test_fixed_navigation() {
wp_enqueue_script( 'fixed-navigation', get_template_directory_uri() . '/js/fixed- navigation.js', array(), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'test_fixed_navigation' );
这是我的固定导航文件:
( function() {
$(document).ready(function() {
$(window).scroll(function () {
//if you hard code, then use console
//.log to determine when you want the
//nav bar to stick.
console.log($(window).scrollTop())
if ($(window).scrollTop() > 280) {
$('#fixed-nav').addClass('navbar-fixed');
}
if ($(window).scrollTop() < 281) {
$('#fixed-nav').removeClass('navbar-fixed');
}
});
});
如果有人可以请指出我做错了什么。它只是保持滚动并且不会变得固定。
编辑:我正在使用这个: