导航菜单

移动手机导航菜单UI设计效果

阿里云


这是一组效果很酷的移动手机导航菜单 UI 设计效果。这组手机导航菜单设计共有 6 种不同的效果,均使用 CSS3 和少量的 jQuery 代码来完成。在用户点击汉堡包菜单按钮时,会以不同的方式来显示全屏的导航菜单。

HTML 结构

该手机导航菜单的基本 HTML 结构如下:其中 div.iphone__screen 中的内容是导航菜单的内容。其它部分都是辅助元素,用于绘制手机的外观。

也想出现在这里?联系我们
创客主机
  1. <div class="iphone style-1">
  2.   <div class="iphone__item">#1</div>
  3.   <div class="iphone__power-btn"></div>
  4.   <div class="iphone__left-btn"></div>
  5.   <div class="iphone__details"></div>
  6.   <div class="iphone__screen">
  7.     <a href="#" class="nav__trigger"><span class="nav__icon"></span></a>
  8.     <nav class="nav">
  9.       <ul class="nav__list">
  10.         <li class="nav__item"><a class="nav__link" href="#">Home</a></li>
  11.         <li class="nav__item"><a class="nav__link" href="#">About Us</a></li>
  12.         <li class="nav__item"><a class="nav__link" href="#">Portfolio</a></li>
  13.         <li class="nav__item"><a class="nav__link" href="#">Blog</a></li>
  14.         <li class="nav__item"><a class="nav__link" href="#">Contact Us</a></li>
  15.       </ul>
  16.     </nav>
  17.     <div class="iphone__content"></div>  
  18.   </div>
  19.   <div class="iphone__home-btn"></div>
  20. </div>

CSS 样式

汉堡包导航菜单按钮使用<span>元素,以及它的:before 和:after 伪元素来制作。并且为它们的 background-color 属性和 transform 设置了 300 毫秒动画过渡效果。

  1. .nav__trigger {
  2.   display: block;
  3.   position: absolute;
  4.   width: 30px;
  5.   height: 25px;
  6.   right: 10px;
  7.   top: 10px;
  8.   z-index: 200;
  9. }
  10. .nav--active .nav__trigger {
  11.   opacity: 0.5;
  12. }
  13. .nav__icon {
  14.   display: inline-block;
  15.   position: relative;
  16.   width: 30px;
  17.   height: 5px;
  18.   background-color: #FFFFFF;
  19.   -webkit-transition-property: background-color, -webkit-transform;
  20.   transition-property: background-color, -webkit-transform;
  21.   transition-property: background-color, transform;
  22.   transition-property: background-color, transform, -webkit-transform;
  23.   -webkit-transition-duration: 300ms;
  24.           transition-duration: 300ms;
  25. }
  26. .nav__icon:before,
  27. .nav__icon:after {
  28.   content: '';
  29.   display: block;
  30.   width: 30px;
  31.   height: 5px;
  32.   position: absolute;
  33.   background: #FFFFFF;
  34.   -webkit-transition-property: margin, -webkit-transform;
  35.   transition-property: margin, -webkit-transform;
  36.   transition-property: margin, transform;
  37.   transition-property: margin, transform, -webkit-transform;
  38.   -webkit-transition-duration: 300ms;
  39.           transition-duration: 300ms;
  40. }
  41. .nav__icon:before {
  42.   margin-top: -10px;
  43. }
  44. .nav__icon:after {
  45.   margin-top: 10px;
  46. }

全屏导航菜单的通用样式非常简单,开始时透明度设置为 0,所有属性都设置了 300 毫秒的动画过渡效果。在菜单激活状态.nav--active 中,透明度被设置为 1,并添加一个背景颜色。

  1. .nav {
  2.   position: absolute;
  3.   z-index: 100;
  4.   opacity: 0;
  5.   -webkit-transition-property: all;
  6.   transition-property: all;
  7.   -webkit-transition-duration: 300ms;
  8.           transition-duration: 300ms;
  9. }
  10. .nav--active .nav {
  11.   opacity: 1;
  12.   background-color: #333;
  13. }
  14. .nav__list {
  15.   margin: 0;
  16.   padding: 10px;
  17. }
  18. .nav__item {
  19.   list-style-type: none;
  20.   text-align: left;
  21. }
  22. .nav__link {
  23.   font-size: 1.3em;
  24.   text-transform: uppercase;
  25.   text-decoration: none;
  26.   color: #FFFFFF;
  27.   opacity: 1;
  28.   -webkit-transition: opacity 300ms ease-in-out;
  29.   transition: opacity 300ms ease-in-out;
  30. }

在第一种导航菜单效果中,导航菜单开始时使用 translateX(-100%)函数移到手机屏幕之外。里面的导航项的透明度设置为 0。

  1. .style-1 .nav {
  2.   -webkit-transform: translateX(-100%);
  3.           transform: translateX(-100%);
  4.   width: 100%;
  5.   height: 100%;
  6. }
  7. .style-1 .nav__link {
  8.   opacity: 0;
  9.   -webkit-transition-delay: 500ms;
  10.           transition-delay: 500ms;
  11. }

当用户点击了导航菜单按钮,导航菜单上被添加了.nav--active 的 class 类,此时导航菜单处于激活状态。菜单中的导航项的透明度被设置为 1,整个菜单使用 translateX(0)移动回手机屏幕中间。同时汉堡包按钮的上下两条线(:before 和:after 伪元素)分别做顺时针和逆时针的 45 度旋转,并将中间的 span 元素通过透明度为 0 使其不可见。

  1. .style-1 .nav--active .nav__link {
  2.   opacity: 1;
  3. }
  4. .style-1 .nav--active .nav {
  5.   -webkit-transition: all 300ms ease-in-out;
  6.   transition: all 300ms ease-in-out;
  7.   -webkit-transform: translateX(0);
  8.           transform: translateX(0);
  9. }
  10. .style-1 .nav--active .nav__icon {
  11.   background: rgba(0, 0, 0, 0);
  12. }
  13. .style-1 .nav--active .nav__icon:before {
  14.   margin-top: 0;
  15.   -webkit-transform: rotate(45deg);
  16.           transform: rotate(45deg);
  17. }
  18. .style-1 .nav--active .nav__icon:after {
  19.   margin-top: 0;
  20.   -webkit-transform: rotate(-45deg);
  21.           transform: rotate(-45deg);
  22. }

其它的 5 种导航菜单效果请参考下载文件中的样式设置。

JavaScript

该导航菜单使用 jQuery 来在用户点击汉堡包按钮时为其父元素切换相应的 class 类。

  1. $(function(){
  2.   $('.nav__trigger').on('click', function(e){
  3.     e.preventDefault();
  4.     $(this).parent().toggleClass('nav--active');
  5.   });
  6. })

移动手机导航菜单 UI 设计效果

已有 386 人购买
查看演示升级 VIP立刻购买

演示地址
收藏
(2)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!