首页 > 软件开发 > JQUERY >

用jquery制作自动移动子菜单的导航栏

来源:互联网 2023-03-17 00:52:15 397

用jquery制作自动移动子菜单的导航栏vbZ办公区 - 实用经验教程分享!

今天,我们要创建一个在选定其父菜单的基础上自动移动子菜单的导航栏。每个子菜单依次他们的父菜单的顺序水平堆叠。因此,当用户他们光标移动到一个父菜单的子菜单将出现其水平位置移动。

vbZ办公区 - 实用经验教程分享!

vbZ办公区 - 实用经验教程分享!

工具/原料

  • dreamweaver cs5 jquerybr />/

步骤/方法

  • 1

    创建菜单vbZ办公区 - 实用经验教程分享!

    首先创建菜单和它的内容。创建菜单包含的div元素,菜单本身的无序列表元素。在这个例子中,我们要创建四个菜单。vbZ办公区 - 实用经验教程分享!

    div id="menu-wrapper">

    vbZ办公区 - 实用经验教程分享!

    ul class="menu">

    vbZ办公区 - 实用经验教程分享!

    li> a href="http://www.web0752.com/CSS Tutorial">CSS Tutorial/a> /li>

    vbZ办公区 - 实用经验教程分享!

    li> a href="http://www.web0752.com/jQuery Tutorial">jQuery Tutorial/a> /li>

    vbZ办公区 - 实用经验教程分享!

    li> a href="http://www.web0752.com/Code Snippet">Code Snippet/a> /li>

    vbZ办公区 - 实用经验教程分享!

    li> a href="http://www.web0752.com/Freebies">Freebies/a> /li>

    vbZ办公区 - 实用经验教程分享!

    /ul>

    vbZ办公区 - 实用经验教程分享!

    /div>vbZ办公区 - 实用经验教程分享!

    创建居中宽870像素,黑背景的DIV。vbZ办公区 - 实用经验教程分享!

    #menu-wrapper {

    vbZ办公区 - 实用经验教程分享!

    position: relative;

    vbZ办公区 - 实用经验教程分享!

    display: block;

    vbZ办公区 - 实用经验教程分享!

    z-index: 2;

    vbZ办公区 - 实用经验教程分享!

    height: 60px;

    vbZ办公区 - 实用经验教程分享!

    background-image: linear-gradient(to bottom, #535557, #333532);

    vbZ办公区 - 实用经验教程分享!

    font-family: "Pontano Sans";

    vbZ办公区 - 实用经验教程分享!

    font-size: 15px;

    vbZ办公区 - 实用经验教程分享!

    color: #fff;

    vbZ办公区 - 实用经验教程分享!

    text-align: center;

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .menu {

    vbZ办公区 - 实用经验教程分享!

    display: block;

    vbZ办公区 - 实用经验教程分享!

    margin: 0 auto;

    vbZ办公区 - 实用经验教程分享!

    padding: 0;

    vbZ办公区 - 实用经验教程分享!

    width: 870px;

    vbZ办公区 - 实用经验教程分享!

    text-align: left;

    vbZ办公区 - 实用经验教程分享!

    list-style-type: none;

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .menu li {

    vbZ办公区 - 实用经验教程分享!

    display: inline-block;

    vbZ办公区 - 实用经验教程分享!

    padding: 16px 10px 25px 10px;

    vbZ办公区 - 实用经验教程分享!

    cursor: pointer;

    vbZ办公区 - 实用经验教程分享!

    transition: 0.3s ease-in-out;

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .menu li:hover, .selected {

    vbZ办公区 - 实用经验教程分享!

    background: #212525;

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .menu a, .menu a:visited {

    vbZ办公区 - 实用经验教程分享!

    color: #fff;

    vbZ办公区 - 实用经验教程分享!

    text-decoration: none;

    vbZ办公区 - 实用经验教程分享!

    }vbZ办公区 - 实用经验教程分享!

  • 2

    vbZ办公区 - 实用经验教程分享!

    用jquery制作自动移动子菜单的导航栏vbZ办公区 - 实用经验教程分享!

  • 3

    创建子菜单vbZ办公区 - 实用经验教程分享!

    每个子菜单都具有自己的无序列表,包含子菜单中的项目。子菜单中也将包含四个项目,每个人都将包含图像和它的标题。无序列表,每个子菜单,将水平堆积。vbZ办公区 - 实用经验教程分享!

    div id="submenu-wrapper">

    vbZ办公区 - 实用经验教程分享!

    ul class="submenu">

    vbZ办公区 - 实用经验教程分享!

    li>

    vbZ办公区 - 实用经验教程分享!

    a href="http://www.web0752.com/2012/05/photoshop-effect-vs-css3-properties/">

    vbZ办公区 - 实用经验教程分享!

    img src="http://www.web0752.com/images/9.jpg">

    vbZ办公区 - 实用经验教程分享!

    Photoshop Effect vs CSS3 Properties

    vbZ办公区 - 实用经验教程分享!

    /a>

    vbZ办公区 - 实用经验教程分享!

    /li>

    vbZ办公区 - 实用经验教程分享!

    !-- item submenu -->

    vbZ办公区 - 实用经验教程分享!

    /ul>

    vbZ办公区 - 实用经验教程分享!

    ul class="submenu">

    vbZ办公区 - 实用经验教程分享!

    !-- item submenu -->

    vbZ办公区 - 实用经验教程分享!

    /ul>

    vbZ办公区 - 实用经验教程分享!

    !-- another submenu -->

    vbZ办公区 - 实用经验教程分享!

    /div>

    vbZ办公区 - 实用经验教程分享!

    vbZ办公区 - 实用经验教程分享!

    子菜单将有类似的主题,都在父页的中心位置。vbZ办公区 - 实用经验教程分享!

    #submenu-wrapper {

    vbZ办公区 - 实用经验教程分享!

    position: absolute;

    vbZ办公区 - 实用经验教程分享!

    right: 0;

    vbZ办公区 - 实用经验教程分享!

    left: 0;

    vbZ办公区 - 实用经验教程分享!

    display: block;

    vbZ办公区 - 实用经验教程分享!

    z-index: 1;

    vbZ办公区 - 实用经验教程分享!

    width: 850px;

    vbZ办公区 - 实用经验教程分享!

    height: 130px;

    vbZ办公区 - 实用经验教程分享!

    margin: 0 auto;

    vbZ办公区 - 实用经验教程分享!

    padding: 10px 10px;

    vbZ办公区 - 实用经验教程分享!

    background: rgba(33,37,37,0.9);

    vbZ办公区 - 实用经验教程分享!

    font-family: "Pontano Sans";

    vbZ办公区 - 实用经验教程分享!

    font-size: 13px;

    vbZ办公区 - 实用经验教程分享!

    border-bottom-right-radius: 10px;

    vbZ办公区 - 实用经验教程分享!

    border-bottom-left-radius: 10px;

    vbZ办公区 - 实用经验教程分享!

    box-shadow: 0px 2px 7px rgba(0,0,0,0.5);

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .submenu {

    vbZ办公区 - 实用经验教程分享!

    display: block;

    vbZ办公区 - 实用经验教程分享!

    margin: 0 0 1.5em;

    vbZ办公区 - 实用经验教程分享!

    padding: 0;

    vbZ办公区 - 实用经验教程分享!

    list-style-type: none;

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .submenu li {

    vbZ办公区 - 实用经验教程分享!

    display: inline-block;

    vbZ办公区 - 实用经验教程分享!

    width: 210px;

    vbZ办公区 - 实用经验教程分享!

    vertical-align: top;

    vbZ办公区 - 实用经验教程分享!

    text-align: center;

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .submenu li img {

    vbZ办公区 - 实用经验教程分享!

    display: block;

    vbZ办公区 - 实用经验教程分享!

    margin: 0 auto 1em;

    vbZ办公区 - 实用经验教程分享!

    width: 200px;

    vbZ办公区 - 实用经验教程分享!

    border-radius: 5px;

    vbZ办公区 - 实用经验教程分享!

    border: 0;

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    .submenu li a, .submenu li a:visited {

    vbZ办公区 - 实用经验教程分享!

    color: #fff;

    vbZ办公区 - 实用经验教程分享!

    text-decoration: none;

    vbZ办公区 - 实用经验教程分享!

    }vbZ办公区 - 实用经验教程分享!

    子菜单就会像下面的图片:vbZ办公区 - 实用经验教程分享!

    加入代码overflow: hiddenon #submenu-wrapper隐藏其余子菜单,让其只显示一个无序列表。vbZ办公区 - 实用经验教程分享!

    当用户鼠标悬停子菜单出现,所以我们需要隐藏其他子菜单。设置margin topto -12em让子菜单将从底部往上显示。vbZ办公区 - 实用经验教程分享!

  • 4

    vbZ办公区 - 实用经验教程分享!

    用jquery制作自动移动子菜单的导航栏vbZ办公区 - 实用经验教程分享!

  • 5

    vbZ办公区 - 实用经验教程分享!

    用jquery制作自动移动子菜单的导航栏vbZ办公区 - 实用经验教程分享!

  • 6

    jQuery做其余的执行vbZ办公区 - 实用经验教程分享!

    所有标记后成立了现在,我们将创建一些jQuery的代码隐藏和显示子菜单,并添加到选定的子菜单焦点。在这之前我们必须准备好接下来需要的变量。vbZ办公区 - 实用经验教程分享!

    menu = $('.menu li');

    vbZ办公区 - 实用经验教程分享!

    submenuWrapper = $('#submenu-wrapper');

    vbZ办公区 - 实用经验教程分享!

    submenu = submenuWrapper.children('ul');

    vbZ办公区 - 实用经验教程分享!

    firstSubmenu = submenu.eq(0);

    vbZ办公区 - 实用经验教程分享!

    vbZ办公区 - 实用经验教程分享!

    firstSubmenu是第一个无序列表子菜单栈,我们将使用这个变量来控制显示无序列表和它上下移动。vbZ办公区 - 实用经验教程分享!

  • 7

    读取鼠标事件vbZ办公区 - 实用经验教程分享!

    当用户悬停在菜单上,我们将检查子菜单是否已显示?但如果没有,那么我们将激活。显示子菜单后,我们会根据用户菜单选择显示出相应的无序列表。vbZ办公区 - 实用经验教程分享!

    menu.hover(

    vbZ办公区 - 实用经验教程分享!

    function() {

    vbZ办公区 - 实用经验教程分享!

    moveTo = $(this).index() * 11;

    vbZ办公区 - 实用经验教程分享!

    if(!submenuWrapper.hasClass('show'))

    vbZ办公区 - 实用经验教程分享!

    submenuWrapper.addClass('show').stop().animate({'marginTop' : '0'});

    vbZ办公区 - 实用经验教程分享!

    firstSubmenu.stop().animate({'marginTop' : '-' moveTo 'em' });

    vbZ办公区 - 实用经验教程分享!

    },

    vbZ办公区 - 实用经验教程分享!

    function() {

    vbZ办公区 - 实用经验教程分享!

    submenuWrapper.removeClass('show').stop().animate({'marginTop' : '-12em'});

    vbZ办公区 - 实用经验教程分享!

    });

    vbZ办公区 - 实用经验教程分享!

    vbZ办公区 - 实用经验教程分享!

    如果用户移动光标移动到子菜单,它会滑动,以防止这一点,我们还需要附加像菜单那样的检查功能。vbZ办公区 - 实用经验教程分享!

    submenuWrapper.hover(

    vbZ办公区 - 实用经验教程分享!

    function() {

    vbZ办公区 - 实用经验教程分享!

    if(!submenuWrapper.hasClass('show'))

    vbZ办公区 - 实用经验教程分享!

    submenuWrapper.addClass('show').stop().animate({'marginTop' : '0'});

    vbZ办公区 - 实用经验教程分享!

    },

    vbZ办公区 - 实用经验教程分享!

    function() {

    vbZ办公区 - 实用经验教程分享!

    submenuWrapper.removeClass('show').stop().animate({'marginTop' : '-12em'});

    vbZ办公区 - 实用经验教程分享!

    });

    vbZ办公区 - 实用经验教程分享!

    vbZ办公区 - 实用经验教程分享!

    正如你注意到我们有类似行代码前面的代码行3,4和7,他们的功能就是显示和隐藏子菜单。vbZ办公区 - 实用经验教程分享!

    function showsubmenu(item) {

    vbZ办公区 - 实用经验教程分享!

    if(!item.hasClass('show'))

    vbZ办公区 - 实用经验教程分享!

    item.addClass('show').stop().animate({'marginTop' : '0'});

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    function hidesubmenu(item) {

    vbZ办公区 - 实用经验教程分享!

    item.removeClass('show').stop().animate({'marginTop' : '-12em'});

    vbZ办公区 - 实用经验教程分享!

    }

    vbZ办公区 - 实用经验教程分享!

    vbZ办公区 - 实用经验教程分享!

    因此,该代码将是:vbZ办公区 - 实用经验教程分享!

    menu.hover(

    vbZ办公区 - 实用经验教程分享!

    function() {

    vbZ办公区 - 实用经验教程分享!

    moveTo = $(this).index() * 11;

    vbZ办公区 - 实用经验教程分享!

    showsubmenu(submenuWrapper);

    vbZ办公区 - 实用经验教程分享!

    firstSubmenu.stop().animate({'marginTop' : '-' moveTo 'em' });

    vbZ办公区 - 实用经验教程分享!

    },

    vbZ办公区 - 实用经验教程分享!

    function() { hidesubmenu(submenuWrapper);

    vbZ办公区 - 实用经验教程分享!

    });

    vbZ办公区 - 实用经验教程分享!

    submenuWrapper.hover(

    vbZ办公区 - 实用经验教程分享!

    function() { showsubmenu($(this)); },

    vbZ办公区 - 实用经验教程分享!

    function() { hidesubmenu($(this));

    vbZ办公区 - 实用经验教程分享!

    });
  • 8

    添加焦点vbZ办公区 - 实用经验教程分享!

  • 8本页面非法爬取自百度经验
  • 9

    选定的子菜单项,将通过降低其他项不透明度的一个焦点。也增加其父菜单的焦点,让用户知道他们在哪里。vbZ办公区 - 实用经验教程分享!

  • 10

    submenu

    vbZ办公区 - 实用经验教程分享!

    .children('li')

    vbZ办公区 - 实用经验教程分享!

    .hover( function() { $(this).siblings().stop().animate({'opacity':'0.5'}); },

    vbZ办公区 - 实用经验教程分享!

    function() { $(this).siblings().stop().animate({'opacity':'1'}); });

    vbZ办公区 - 实用经验教程分享!

    submenu

    vbZ办公区 - 实用经验教程分享!

    .hover( function() { menu.eq($(this).index()).addClass('selected') },

    vbZ办公区 - 实用经验教程分享!

    function() { menu.eq($(this).index()).removeClass('selected') });

    vbZ办公区 - 实用经验教程分享!

    如下图:vbZ办公区 - 实用经验教程分享!

  • 11

    vbZ办公区 - 实用经验教程分享!

    用jquery制作自动移动子菜单的导航栏vbZ办公区 - 实用经验教程分享!

  • 注意事项

    • CSS JS的东西一般都要注意兼容性,兼容所有流览器还要慢慢优化。

      vbZ办公区 - 实用经验教程分享!

      vbZ办公区 - 实用经验教程分享!

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!vbZ办公区 - 实用经验教程分享!


    标签: JQUERY

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码