带炫酷CSS3过渡动画的全屏导航菜单网页UI设计

当前位置:主页 > CSS3库 > UI界面设计 > 带炫酷CSS3过渡动画的全屏导航菜单网页UI设计
带炫酷CSS3过渡动画的全屏导航菜单网页UI设计
分享:

    插件介绍

    这是一款效果非常炫酷的带炫酷CSS3过渡动画的全屏导航菜单网页UI设计效果。该导航菜单使用CSS3和少量的jQuery来制作,当用户点击左上角的汉堡包按钮时,全屏菜单将从屏幕上方滑动显示出来。

    浏览器兼容性

    浏览器兼容性
    时间:2015-12-29
    阅读:
简要教程

这是一款效果非常炫酷的带炫酷CSS3过渡动画的全屏导航菜单网页UI设计效果。该导航菜单使用CSS3和少量的jQuery来制作,当用户点击左上角的汉堡包按钮时,全屏菜单将从屏幕上方滑动显示出来。

使用方法

HTML结构

该全屏导航菜单的汉堡包按钮使用一个<div>元素来包裹一个按钮元素,按钮中使用一组<span>元素来作为汉堡包按钮的三根线条。

<div class="nav">
  <button class="btn-nav">
    <span class="icon-bar top"></span>
    <span class="icon-bar middle"></span>
    <span class="icon-bar bottom"></span>
  </button>
</div>        
              

导航菜单使用一个<div>来包裹一个无序列表。默认状态下它是隐藏的。

<div class="nav-content hideNav hidden">
  <ul class="nav-list">
    <li class="nav-item"><a href="#" class="item-anchor">item 1</a></li>
    <li class="nav-item"><a href="#" class="item-anchor">item 2</a></li>
    <li class="nav-item"><a href="#" class="item-anchor">item 3</a></li>
    <li class="nav-item"><a href="#" class="item-anchor">item 4</a></li>
  </ul>
</div>                
              
CSS样式

汉堡包按钮的基本CSS样式如下:当汉堡包按钮被鼠标点击或在移动触摸设备上被触摸的时候,它会被添加一个animated class,这个class类用来制作汉堡包按钮的颜色变化动画和变形动画。

.btn-nav {
  position: fixed;
  top: 50px;
  left: 30px;
  background: transparent;
  border: none;
  padding: 10px;
  -webkit-transition: all .5s ease;
  -moz-transition: all .5s ease;
  -ms-transition: all .5s ease;
  -o-transition: all .5s ease;
  transition: all .5s ease;
  cursor: pointer;
  z-index: 99999;
}

.btn-nav:focus {
  outline: 0;
}

.icon-bar {
  display: block;
  margin: 6px 0;
  width: 40px;
  height: 5px;
  background-color: #FFFFFF;
}

.btn-nav:hover .icon-bar {
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  -ms-transition: all 1s ease;
  -o-transition: all 1s ease;
  transition: all 1s ease;
  background-color: #FCA311;
}

.animated {
  display: block;
  margin: 0 auto;
}

.animated:hover .icon-bar,
.animated:focus .icon-bar{
  background-color: #FCA311;
}

.animated:focus {
  cursor: pointer;
  z-index: 9999;
}

.middle {
  margin: 0 auto;
}

.icon-bar {
  -webkit-transition: all .7s ease;
  -moz-transition: all .7s ease;
  -ms-transition: all .7s ease;
  -o-transition: all .7s ease;
  transition: all .7s ease;
  z-index: 999999;
}

.animated .icon-bar {
  z-index: 999999;
  background-color: #FCA311;
}

.animated .top {
  -webkit-transform: translateY(10px) rotateZ(45deg);
  -moz-transform: translateY(10px) rotateZ(45deg);
  -ms-transform: translateY(10px) rotateZ(45deg);
  -o-transform: translateY(10px) rotateZ(45deg);
  transform: translateY(10px) rotateZ(45deg);
}

.animated .bottom {
  -webkit-transform: translateY(-11px) rotateZ(-45deg);
  -moz-transform: translateY(-11px) rotateZ(-45deg);
  -ms-transform: translateY(-11px) rotateZ(-45deg);
  -o-transform: translateY(-11px) rotateZ(-45deg);
  transform: translateY(-11px) rotateZ(-45deg);
}

.animated .middle {
  width: 0;
}          
              

全屏导航菜单的CSS样式也非常简单:默认情况下它使用hiddenhidden class类来隐藏,在用户用鼠标点击或在移动触摸设备中触摸了汉堡包按钮时,将移除这两个class类,替换为showNav class。

.nav {
  position: relative;
  width: auto;
  display: inline-block;
  border: none;
}

.nav-content {
  position: fixed;
  top: -100%;
  bottom: 0;
  left: 0;
  right: 0;
  background: #000000;
  display: block;
  height: 100%;
  z-index: 9;
}

.nav-list {
  list-style: none;
  padding: 0;
  position: relative;
  top: 30%;
}

.item-anchor:after {
  content: "";
  position: absolute;
  width: 3px;
  height: 3px;
  left: 0;
  bottom: 0;
  z-index: 9;
  background: transparent;
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  -ms-transition: all 1s ease;
  -o-transition: all 1s ease;
  transition: all 1s ease;
}

.item-anchor {
  color: #fff;
  font-size: 30px;
  text-transform: uppercase;
  position: relative;
  text-decoration: none;
  padding: 10px;
}

.item-anchor:hover,
.item-anchor:focus {
  color: #FCA311;
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  -ms-transition: all 1s ease;
  -o-transition: all 1s ease;
  transition: all 1s ease;
}

.item-anchor:hover:after,
.item-anchor:focus:after{
  width: 100%;
  background: #FCA311;
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  -ms-transition: all 1s ease;
  -o-transition: all 1s ease;
  transition: all 1s ease;
}

.nav-item {
  margin: 40px auto;
  text-align: center;
}

.hideNav {
  -webkit-animation: hideNav 1s ease forwards;
  -moz-animation: hideNav 1s ease forwards;
  -o-animation: hideNav 1s ease forwards;
  animation: hideNav 1s ease forwards;
}

.hidden {
  display: none;
}                
              
JavaScript

该全屏菜单使用jQuery来处理汉堡包按钮被鼠标点击或移动触摸时的事件。

$(window).load(function () {
  $('.btn-nav').on('click tap', function () {
      $('.nav-content').toggleClass('showNav hideNav').removeClass('hidden');
      $(this).toggleClass('animated');
  });
});