基于jQuery实现的菜单切换效果

这是一个非常流畅的菜单展示效果,应用在亚马逊上,当你上下移动鼠标的时候,二级菜单会非常轻快的切换,没有任何延时,给用户如滑丝般的感觉。这种效果借助于一款jQuery插件menu-aim,本文将结合实例讲解如何实现速度超快的菜单效果。

HTML
首先建立主菜单,我们借用电商网站常见的商品分类。其html结构代码如下,其中我们用到了html5的data-submenu-id属性设置,这在插件调用时非常有用。

<div class="active">
  <ul class="dropdown-menu" role="menu">
    <li data-submenu-id="submenu-patas"><a href="#">服装服饰</a></li>
    <li data-submenu-id="submenu-snub-nosed"><a href="#"> 箱包配饰</a></li>
    <li data-submenu-id="submenu-duoc-langur"><a href="#">数码家电</a></li>
    <li data-submenu-id="submenu-pygmy"><a href="#">美容护发</a></li>
    <li data-submenu-id="submenu-tamarin"><a href="#">母婴用品</a></li>
    <li data-submenu-id="submenu-monk"><a href="#">家居建材</a></li>
    <li data-submenu-id="submenu-gabon"><a href="#">食品百货</a></li>
    <li data-submenu-id="submenu-grivet"><a href="#">户外汽车</a></li>
    <li data-submenu-id="submenu-red-leaf"><a href="#">文化玩乐</a></li>
    <li data-submenu-id="submenu-king-colobus"><a href="#">生活服务</a></li>
  </ul>
</div>

子菜单与主菜单对应,每一个子菜单的id属性值必须与主菜单的data-submenu-id属性值对应,子菜单内容可以为任意html标签代码,p,img,audio都可以,格式如下:

<div id="submenu-patas" class="popover">
任意html代码
</div> 

CSS
我们将主菜单dropdown-menu位置固定,子菜单popover默认隐藏,通过css3技术可以设置菜单阴影圆角效果,子菜单内容的css可以根据需要自由发挥。

.active{position:relative}
.dropdown-menu { position: absolute;
 z-index: 1000;float: left;
 min-width: 120px;padding: 5px 0;margin: 2px 0 0;list-style: none;
 background-color: #ffffff;border: 1px solid #ccc;
 -webkit-border-radius: 6px;-moz-border-radius: 6px;border-radius: 6px;
 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow: 0 5px 10px
rgba(0, 0, 0, 0.2);box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.dropdown-menu li{height:24px; line-height:24px; text-align:center}
.dropdown-menu li a{display:block}
.dropdown-menu li a:hover{color:#fff; text-decoration:none; background:#39f}
.popover {
 position: absolute;top: 0;left: 0; z-index: 1010;display: none;
 width: 320px;-webkit-border-radius: 6px;-moz-border-radius: 6px;border-radius: 6px;
 -webkit-border-top-left-radius: 0px;-webkit-border-bottom-left-radius: 0px;
 border-top-left-radius: 0px;border-bottom-left-radius: 0px;overflow: hidden;
 padding: 1px 1px 1px 15px;text-align: left;white-space: normal;
 background-color: #fff;border: 1px solid #ccc;
 border: 1px solid rgba(0, 0, 0, 0.2);
 webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow: 0 5px 10px
rgba(0, 0, 0, 0.2);box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
} 

jQuery
下面我们隆重推出jquery.menu-aim.js,该插件是一款基于jQuery的菜单插件,插件作者关注了用户体验并精于算法,根据鼠标轨迹,将菜单切换效果实现得淋漓精致,该插件“超快”的反应效果是不是让我们有中“超爽”的感觉?插件地址:
使用$(element).menuAim()调用jquery.menu-aim.js,当鼠标触发主菜单时调用自定义函数activateSubmenu(),当离开主菜单时调用自定义函数deactivateSubmenu()。

$(function(){
   $(".dropdown-menu").menuAim({
      activate: activateSubmenu,//触发主菜单,显示子菜单
      deactivate: deactivateSubmenu //离开主菜单,隐藏子菜单
   });
}); 

如上调用就可以完成子菜单间的快速切换,jquery.menu-aim.js还提供其他几种方法,enter()和exit(),都是控制鼠标移入移出、调用函数等。
接下来,我们写上自定义函数

var $menu = $(".dropdown-menu"); 

function activateSubmenu(row) {
  var $row = $(row),
  submenuId = $row.data("submenuId"),
  $submenu = $("#" + submenuId),
  offset = $menu.offset(),
  height = $menu.outerHeight(),
  width = $menu.outerWidth(); 

  $submenu.css({ //设置子菜单样式
     display: "block", //显示子菜单
     top: offset.top,
     left: offset.left + width - 5,
     height: height - 4
  });
  //设置主菜单样式(鼠标滑向主菜单时)
  $row.find("a").addClass("maintainHover");
} 

function deactivateSubmenu(row) {
  var $row = $(row),
  submenuId = $row.data("submenuId"),
  $submenu = $("#" + submenuId); 

  $submenu.css("display", "none"); //隐藏子菜单
  $row.find("a").removeClass("maintainHover");恢复主菜单样式
} 

怎么样,你也可以做一个amazon.cn式的菜单效果了,以上就是本文的全部内容,希望本文对大家学习jquery有所帮助。

(0)

相关推荐

  • 纯CSS打造的导航菜单(附jquery版)

    方式一:直接编写代码实现 效果如下: 代码如下: 复制代码 代码如下: <html> <head> <title>无需表格的菜单</title> <style> <!-- body{ background-color:#ffdee0; } #navigation { width:200px; font-family:Arial; } #navigation ul { list-style-type:none; /* 不显示项目符号 */ m

  • jQuery+CSS实现简单切换菜单示例

    本文实例讲述了jQuery+CSS实现简单切换菜单的方法.分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标

  • jQuery实现Tab菜单滚动切换的方法

    本文实例讲述了jQuery实现Tab菜单滚动切换的方法.分享给大家供大家参考.具体如下: 这是一款jQuery实现让你的Tab菜单滚动的代码,先运行一下看看效果咋样?是不是超不错,让你的网页变得灵动起来,不再静止,学习jquery的朋友也可作为范例来参考吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-tab-menu-cha-style-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W

  • jquery+css+ul模拟列表菜单具体实现思路

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

  • jQuery实现带幻灯的tab滑动切换风格菜单代码

    本文实例讲述了jQuery实现带幻灯的tab滑动切换风格菜单代码.分享给大家供大家参考.具体如下: 这是一款很不错的TAB滑动切换效果,jQuery带幻灯的tab滑动切换风格菜单导航条,点击上方的文字,下边就向左或向右滑动切换,动画效果的TAB选项卡. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-flash-style-tab-cha-menu-codes/ 具体代码如下: <!DOCTYPE html> <head&g

  • jQuery+css实现的蓝色水平二级导航菜单效果代码

    本文实例讲述了jQuery+css实现的蓝色水平二级导航菜单效果.分享给大家供大家参考.具体如下: 这是一款蓝色经典的jQuery+CSS实现水平二级导航菜单,相信你会喜欢的,蓝色,超级经典的一种风格,从其它网站上扣下来的,我认为很不错,赶紧分享给大家吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-blue-line-2level-nav-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC &quo

  • jQuery实现菜单式图片滑动切换

    jQuery菜单式图片滑动切换是一款天猫官方网站的鼠标滑过图片切换导航菜单特效. 复制代码 代码如下: $(function(){     // floorCon-slide     $(".floorCon-slide .floorConSlideImgNav li span").css({opacity:0.95})     $(".floorCon-slide .floorConSlideImgNav li.hover").find("span&qu

  • 基于jQuery插件实现环形图标菜单旋转切换特效

    feature.presenter.1.5.css body { margin: 0; font-family: Tahoma; } .feature-presenter { position: absolute; } .feature-presenter-icon { background-color: white; text-align: center; transition: transform 0.7s cubic-bezier(0.445, 0.05, 0.55, 0.95); -we

  • jquery实现简单Tab切换菜单效果

    本文实例为大家分享了jquery Tab切换菜单的实现代码,供大家参考,具体内容如下 实现tab切换的主要html代码: <div class="container"> <ul class="tabs"> <li class="active"><a href="#tab1">导航菜单</a></li> <li><a href="

  • jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)

    功能很实用,代码非常的简单 效果1. 效果2. 样式代码如下: 复制代码 代码如下: body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,br,pre,form,fieldset,input,textarea,p,blockquote,th,td{ margin:0; padding:0 } span{ color:#FF2B13 } a{ text-decoration:none; color:#515050 } a:hover{ text-decorat

  • 7款风格新颖的jQuery/CSS3菜单导航分享

    一款优秀的菜单对网站而言是非常重要的,它不仅可以让用户方便地找到想要的信息,而且更让人有一种特殊的用户体验.下面给大家分享7款风格新颖的jQuery/CSS3菜单导航,希望大家会喜欢. 1.CSS3立体飘带状菜单 CSS3立体飘带状菜单,该菜单鼠标滑过时,菜单项向上立体凸起,结合黑色的木质背景,整个菜单显得非常立体生动. 在线演示 /源码下载 2.CSS3个人资料导航菜单 该菜单是用来展示登录的用户信息,包括用户的快捷操作按钮,另外菜单还提供一个个性化的搜索框. 在线演示 /源码下载 3.jQu

随机推荐