使用Wordpress Twenty Eleven主题的浮动导航菜单

时间:2012-03-14 16:33:20

标签: php javascript jquery css wordpress

我目前正在使用WordPress Twenty Eleven主题开发一个网站,我想让主导航栏在滚动过去时粘在屏幕顶部,就像这个右侧的段落一样第http://fiddle.jshell.net/zsJAr/show/light/页。

到目前为止,我已经在标题中添加了代码,以便在开头标记之后包含jQuery:

<?php wp_enqueue_script("jquery"); ?>

后来我在关闭头标记之前加入了我的javascript:

<script type="text/javascript"
src="<?php bloginfo("template_url"); ?>/js/moveScroller.js"></script>

moveScroller.js的内容是:

var $j = jQuery.noConflict();

$j(window).load(function(){
    $j(function() {
      var a = function() {
        var b = $j(window).scrollTop();
        var d = $j("#access-anchor").offset({scroll:false}).top;
        var c=$j("#access");
        if (b>d) {
          c.css({position:"fixed",top:"0px"})
        } else {
          if (b<=d) {
            c.css({position:"relative",top:""})
          }
        }
      };
      $j(window).scroll(a);a()
    });
});

“access”和“access-anchor”ID在下面的块中进一步声明:

<div id="access-anchor"></div>
<nav id="access" role="navigation">
            <h3 class="assistive-text"><?php _e( 'Main menu', 'twentyeleven' ); ?></h3>
            <?php /*  Allow screen readers / text browsers to skip the navigation menu and get right to the good stuff. */ ?>
            <div class="skip-link"><a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to primary content', 'twentyeleven' ); ?>"><?php _e( 'Skip to primary content', 'twentyeleven' ); ?></a></div>
            <div class="skip-link"><a class="assistive-text" href="#secondary" title="<?php esc_attr_e( 'Skip to secondary content', 'twentyeleven' ); ?>"><?php _e( 'Skip to secondary content', 'twentyeleven' ); ?></a></div>
            <?php /* Our navigation menu.  If one isn't filled out, wp_nav_menu falls back to wp_page_menu. The menu assiged to the primary position is the one used. If none is assigned, the menu with the lowest ID is used. */ ?>

            <?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

</nav><!-- #access -->

这似乎没有任何效果,我真的不确定如何解决这个问题。由于使用WordPress的经验相当少,我真的很感激这方面的一些帮助。有没有人知道如何去做?

2 个答案:

答案 0 :(得分:0)

如果您正在使用jQuery,您还可以为滚动设置动画,看起来更有趣=) 我在一周前使用过这段代码,它没有使用固定位置,它使用margin-top,但你可以轻松改变它:

var scroll = 0; //initially scroll is 0
var marginTop = 10; //we add an initial  margin
$(window).scroll(function () {
        //once the user scrolls, we calculate the new margin-top
        marginTop = ($(document).scrollTop() - scroll) + marginTop;
        //and we save the new amount of scroll, for the next time
        scroll = $(document).scrollTop();
        $("#divYouWantToMove").animate({"marginTop": marginTop+"px"}, {duration:500,queue:false} );
});

希望它有所帮助!

答案 1 :(得分:0)

所以看起来这可能是不可能的,或者它太复杂了。在WordPress Stack Exchange或WordPress论坛上没有人知道这一点,所以我将不得不放弃它:(