jq 控制导航向下滚动隐藏 向上滚动显示 [复制链接]

moqu8 2018-4-11

7 0
导航条,页面打开时显示,向下滚动页面时隐藏,向上滚动时显示。
觉得这样比较人性化,当向下滚动时,如果导航一直固定,占用了顶部空间,减少了页面展示范围,当向上滚动时,可能会有选择其他栏目的需求,所以这时显示导航。
HTML代码:
  1. <div class="addhead"></div>
  2. <div class="head">
  3. <ul><li><a href="#">栏目导航</a></li></ul>
  4. </div>
复制代码
虽然<div class="addhead h_none"></div>是空的,但不可缺少,用来占位。
CSS代码:
  1. .h_block{display: block;}
  2. .h_none{display:none;}
  3. .addhead{height: 80px;display: none;}
  4. .head{z-index: 200;width: 100%;margin-bottom: 15px;box-shadow: 0px 0px 3px #B6B6B6;background:#FFF;}
复制代码
JQ代码:
  1. <script>
  2. var p = 0, t = 81;
  3. $(window).scroll(function(e){
  4. p = $(this).scrollTop();
  5. if(t < p){
  6. $('.head').removeClass('headscroll');
  7. $('.head').css({position:"relative"});
  8. $('.addhead').addClass('h_none');
  9. $('.addhead').removeClass('h_block');

  10. }else{
  11. $('.head').addClass('headscroll');
  12. $('.head').css({position:"fixed",top:"0px"}).fadeIn(500);
  13. $('.addhead').addClass('h_block');
  14. $('.addhead').removeClass('h_none');
  15. }
  16. setTimeout(function(){
  17. t = p;
  18. }, 0);
  19. });
  20. </script>
复制代码
如果用在discuz里,可能会出现jq冲突,需要加一个代码:
  1. <script type="text/javascript">jq = jQuery.noConflict();</script>
复制代码
然后将上面jq代码里的$换成jq
  1. <script type="text/javascript">jq = jQuery.noConflict();</script>
  2. <script>
  3. var p = 0, t = 81;
  4. jq(window).scroll(function(e){
  5. p = jq(this).scrollTop();
  6. if(t < p){
  7. jq('.head').removeClass('headscroll');
  8. jq('.head').css({position:"relative"});
  9. jq('.addhead').addClass('h_none');
  10. jq('.addhead').removeClass('h_block');

  11. }else{
  12. jq('.head').addClass('headscroll');
  13. jq('.head').css({position:"fixed",top:"0px"}).fadeIn(500);
  14. jq('.addhead').addClass('h_block');
  15. jq('.addhead').removeClass('h_none');
  16. }
  17. setTimeout(function(){
  18. t = p;
  19. }, 0);
  20. });
  21. </script>


最新回复 (0)
返回
支持中心
邮箱:winkill2012@qqcom
新站优化中!部分功能尚未完善,敬请谅解!
支持中心