自动隐藏导航

所属分类:导航-水平导航,其他导航

 53366  529  查看评论 (14)
分享到微信朋友圈
X
自动隐藏导航 ie兼容9

自动隐藏导航已存在相当长的一段时间了,尤其是在移动设备上。这种用户体验模式背后的理念是简单有效,这让我们更容易操作。所以我们把它贴在上面。当用户向下滚动页面,腾出更多的空间内容。如果用户向上滚动页面,我们理解他的将要访问的导航,所以我们把它带回来。

创建结构

TheHTML 体系组成的 aheader.cd-auto-hide-headerelemen 用来包装的主导航 (nav.cd-primary-nav) 和amain.cd-main-content页面主要内容。

<headerclass="cd-auto-hide-header">
  <divclass="logo">
    <ahref="#0">
      <imgsrc="img/cd-logo.svg" alt="Logo"></a>
        </div>
        <navclass="cd-primary-nav">
          <ahref="#cd-navigation" class="nav-trigger">
            <span>
              <emaria-hidden="true"></em>Menu</span>
            </a>
            <!-- .nav-trigger -->
            <ulid="cd-navigation">
              <li>
                <ahref="#0">The team</a></li>
              <li>
                <ahref="#0">Our Services</a></li>
              <li>
                <ahref="#0">Our Projects</a></li>
              <li>
                <ahref="#0">Contact Us</a></li>
              </ul>
              </nav>
              <!-- .cd-primary-nav --></header>
              <!-- .cd-auto-hide-header -->
              <mainclass="cd-main-content">
                <!-- content here --></main>
                <!-- .cd-main-content -->

如果页面有一个导航栏,插入标题元素的additionalnav.cd-secondary-navis

<headerclass="cd-auto-hide-header">
  <divclass="logo">
    <ahref="#0">
      <imgsrc="img/cd-logo.svg" alt="Logo"></a>
        </div>
        <navclass="cd-primary-nav">
          <ahref="#cd-navigation" class="nav-trigger">
            <span>
              <emaria-hidden="true"></em>Menu</span>
            </a>
            <!-- .nav-trigger -->
            <ulid="cd-navigation">
              <!-- links here --></ul>
              </nav>
              <!-- .cd-primary-nav -->
              <navclass="cd-secondary-nav">
                <ul>
                  <li>
                    <ahref="#0">Intro</a></li>
                  <!-- additional links here --></ul>
                </nav>
                <!-- .cd-secondary-nav --></header>
                <!-- .cd-auto-hide-header -->
                <mainclass="cd-main-content sub-nav">
                  <!-- content here --></main>
                  <!-- .cd-main-content -->

最后,如果二级导航低于hero block,a.cd-heroelement 插入下方 <header>,其次是 the.cd-secondary-navelement:

<headerclass="cd-auto-hide-header">
  <divclass="logo">
    <ahref="#0">
      <imgsrc="img/cd-logo.svg" alt="Logo"></a>
        </div>
        <navclass="cd-primary-nav">
          <ahref="#cd-navigation" class="nav-trigger">
            <span>
              <emaria-hidden="true"></em>Menu</span>
            </a>
            <!-- .nav-trigger -->
            <ulid="cd-navigation">
              <!-- links here --></ul>
              </nav>
              <!-- .cd-primary-nav --></header>
              <!-- .cd-auto-hide-header -->
              <sectionclass="cd-hero">
                <!-- content here --></section>
                <!-- .cd-hero -->
                <navclass="cd-secondary-nav">
                  <ul>
                    <!-- links here --></ul>
                  </nav>
                  <!-- .cd-secondary-nav -->
                  <mainclass="cd-main-content sub-nav-hero">
                    <!-- content here --></main>
                    <!-- .cd-main-content -->

添加样式

我们用the.cd-auto-hide-headerclass 来定义自动隐藏页眉的主要样式。默认情况下,标头有一个固定的位置和一个顶部为零;当用户开始向下滚动,the.is-hiddenclass用来隐藏标题右边上面视区。

.cd - auto - hide - header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100 % ;
    height: 60px;
    transition: transform.5s;
}.cd - auto - hide - header.is - hidden {
    transform: translateY( - 100 % );
}
.cd - secondary - nav.fixed {
    position: fixed;
    top: 60px;
}.cd - secondary - nav.slide - up {
    transform: translateY( - 60px);
}

最后,“主要内容”和“简介块”定义基本样式.cd-main-contentand.cd-hero(主要是填充/固定头)的基本样式。

事件处理

我们使用jQuery来监听窗口对象的滚动事件

varscrolling = false;
$(window).on('scroll',
function() {
    if (!scrolling) {
        scrolling = true; (!window.requestAnimationFrame) ? setTimeout(autoHideHeader, 250) : requestAnimationFrame(autoHideHeader);
    }
});

autoHideHeader() 函数功能隐藏/显示导航根据用户是否向上或向下滚动。


相关插件-水平导航,其他导航

下拉导航菜单,动感十足,实用性强

jquery,SuperSlide下拉导航菜单
  水平导航
 43631  441

jQuery四级菜单导航

轻量级的四级菜单导航,代码简单一看就会。
  水平导航
 33775  355

jQuery滑动导航插件

jQuery滑动导航插件 左右多弹一点
  水平导航
 49591  434

水平导航条

可以上下切换的水平导航条
  水平导航
 44298  425

讨论这个项目(14)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    ? 0
    2018/7/12 17:26:36
    免费就好了哈哈 回复
    WYXCHWN 0
    2017/4/6 0:07:21
    土豆泥 0
    2016/12/20 20:12:49
    守望阳光 0
    2016/12/1 17:12:34
    上这个网站这么久久没有得过一个jq币 回复
    时光科技 0
    2016/9/6 9:09:22
    陸慶堂 0
    2016/8/3 12:08:58
    如果图片能轮播就更好 回复
    洪都拉斯大喷子霹雳舞王 0
    2016/8/1 21:08:25
    林雅诗 0
    2016/7/28 14:07:46
    原帖地址 https://codyhouse.co/gem/auto-hiding-navigation/ 
        rayria0
        2016/8/10 10:08:15
        谢谢红领巾
        yida9150
        2016/8/13 14:08:06
        感谢红领巾!!
        虾霸0
        2016/11/14 10:11:26
        太帅了,谢谢!
        Soul mate0
        2016/12/19 19:12:51

        感谢红领巾

        wolf0
        2017/1/21 9:17:35

        太帅了

    回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复