2012-10-04 151 views
0

我需要的是当用户向下滚动或停止时隐藏的导航菜单(除了在顶部,它应该是可见的),一旦用户开始向上滚动,菜单应该重新出现。向下滚动时隐藏导航

到目前为止:

HTML

<div id="wrapper"> 

    <div id="header_nav"> 
     <ul> 
      <li>Punkt1</li> 
      <li>Punkt2</li> 
      <li>Punkt3</li> 
      <li>Punkt4</li> 
     </ul> 
    </div> 

</div> 

CSS

* { 
    padding:0px; 
    margin:0px; 
} 
#wrapper { 
    height:1200px; 
    width:960px; 
    background-color:#567; 
    margin:auto; 
} 
#header_nav { 
    position:fixed; 
    width:960px; 
    height:auto; 
    background-color:#678; 
} 

JQUERY

$(function(){ 
    $('#header_nav').data('size','big'); 
}); 

$(window).scroll(function(){ 
    if($('body').scrollTop() > 0) 
    { 
     if($('#header_nav').data('size') == 'big') 
     { 
      $('#header_nav').data('size','small'); 
      $('#header_nav').stop().animate({ 
       height:'40px' 
      },600); 
     } 
    } 
    else 
    { 
     if($('#header_nav').data('size') == 'small') 
     { 
      $('#header_nav').data('size','big'); 
      $('#header_nav').stop().animate({ 
       height:'100px' 
      },600); 
     } 
    } 
}); 

当我滚动什么都没有发生,我的导航只是一直保持相同的整个时间。当我向下滚动并暂停时,我希望它隐藏起来,但是一旦我开始向上滚动,我希望它淡入。 但是我似乎无法使它工作,您能告诉我我做错了什么吗?

也做了这里提琴:http://jsfiddle.net/iBertel/GGRUL/

+0

当你说“我似乎无法得到它的工作”你是什么意思?目前的症状是什么?你卡在哪里? – HaemEternal

+0

当我滚动什么都没有发生,我的导航只是保持相同的整个时间...我想隐藏,当我向下滚动并暂停,但一旦我开始向上滚动,我希望它淡入。 – Bertel

+0

没有人有想法关于如何帮我解决这个问题?或者也许它是不可能的? – Bertel

回答

2

更改$( '身体' 的)文本scrollTop的为$(窗口).scrollTop似乎得到它的工作:

Example

测试在Chrome中, Firefox,IE9,Windows上的Opera(所有最新版本AFAIK)。

编辑:

将下面的代码,一旦你开始滚动起来火大小调整机制:

http://jsfiddle.net/GbXG4/4/

+0

是的,但我需要一直滚动到顶部,然后再显示 - 我需要它显示,只要我开始向上滚动。 ..有什么想法如何解决这个问题?这是最新的:http://jsfiddle.net/iBertel/4uqNL/ – Bertel

+0

用新代码更新答案,基于此:http://stackoverflow.com/questions/4326845/how-can-i-determine-the- jquery-scroll-event的方向 – MassivePenguin

+0

我很抱歉,我没有把它表达出来。当我向下滚动时,我需要我的菜单隐藏 - 当我向上滚动时,它应该再次变为可见 - 它不应该只在我滚动到顶部时才可见,但只要我开始向上滚动即可。您认为你可以解决这个问题? – Bertel

0

嗯,你的榜样工程。我已经将库(左栏)更改为jQuery,就这些。另外,将overflow:hidden;添加到您的#header_nav。这将隐藏不适合小高潮

相关问题