导航菜单

CSS3响应式下拉导航菜单特效

阿里云


这是一款使用 CSS3 和简单的 js 来制作的响应式下拉导航菜单特效。该下拉导航菜单使用 CSS3 动画来在鼠标滑过时显示子菜单项,并且在视口变小时会切换到列表树结构。

HTML 结构

该导航菜单的 HTML 结构如下:

也想出现在这里?联系我们
创客主机
  1. <nav class="animenu"> 
  2.   <button class="animenu__toggle">
  3.     <span class="animenu__toggle__bar"></span>
  4.     <span class="animenu__toggle__bar"></span>
  5.     <span class="animenu__toggle__bar"></span>
  6.   </button>
  7.   <ul class="animenu__nav">
  8.     <li>
  9.       <a href="#">Home</a>
  10.     </li>
  11.     <li>
  12.       <a href="#">Archive</a>
  13.       <ul class="animenu__nav__child">
  14.         <li><a href="">Sub Item 1</a></li>
  15.         <li><a href="">Sub Item 2</a></li>
  16.         <li><a href="">Sub Item 3</a></li>
  17.       </ul>
  18.     </li>     
  19.     <li>
  20.       <a href="#">Categories</a>
  21.       <ul class="animenu__nav__child">
  22.         <li><a href="">Sub Item 1</a></li>
  23.         <li><a href="">Sub Item 2</a></li>
  24.         <li><a href="">Sub Item 3</a></li>
  25.       </ul>
  26.     </li>
  27.     <li>
  28.       <a href="#">About</a>
  29.     </li>
  30.     <li>
  31.       <a href="#">Contact</a>
  32.     </li>                 
  33.   </ul>
  34. </nav>

JavaScript

该导航菜单使用简单的 JavaScript 代码来处理菜单的点击事件。

  1. (function(){
  2.       var animenuToggle = document.querySelector('.animenu__toggle'),
  3.           animenuNav    = document.querySelector('.animenu__nav'),
  4.           hasClass = function( elem, className ) {
  5.             return new RegExp( ' ' + className + ' ' ).test( ' ' + elem.className + ' ' );
  6.           },
  7.           toggleClass = function( elem, className ) {
  8.             var newClass = ' ' + elem.className.replace( /[\t\r\n]/g, ' ' ) + ' ';
  9.             if( hasClass(elem, className ) ) {
  10.               while( newClass.indexOf( ' ' + className + ' ' ) >= 0 ) {
  11.                 newClass = newClass.replace( ' ' + className + ' ' , ' ' );
  12.               }
  13.               elem.className = newClass.replace( /^\s+|\s+$/g, '' );
  14.             } else {
  15.               elem.className += ' ' + className;
  16.             }
  17.           },           
  18.           animenuToggleNav =  function (){        
  19.             toggleClass(animenuToggle, "animenu__toggle--active");
  20.             toggleClass(animenuNav, "animenu__nav--open");        
  21.           }
  22.  
  23.       if (!animenuToggle.addEventListener) {
  24.           animenuToggle.attachEvent("onclick", animenuToggleNav);
  25.       }
  26.       else {
  27.           animenuToggle.addEventListener('click', animenuToggleNav);
  28.       }
  29.     })()

CSS3 响应式下拉导航菜单特效

已有 545 人购买
  • ez6h
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

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

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