我目前正在使用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的经验相当少,我真的很感激这方面的一些帮助。有没有人知道如何去做?
答案 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论坛上没有人知道这一点,所以我将不得不放弃它:(