`

css3和jquery实现的可折叠导航菜单(适合手机网页)

阅读更多

 

<nav class="nav" role="navigation" style="height: 195px;">
        <ul class="nav-items">
            <li><a target=_blank href="http://www.w2bc.com">Home</a></li>
            <li><a target=_blank href="http://www.w2bc.com">About</a></li>
            <li><a target=_blank href="http://www.w2bc.com">Clients</a></li>
            <li><a target=_blank href="http://www.w2bc.com">Contact Us</a></li>
        </ul>
    </nav>
    <header style="-webkit-transform: translate3d(0px, 195px, 0px);">
  <button class="menu-button-target active" data-ic-class="button-trigger">
      <span class="menu-button"></span>
  </button>
  Example Header
</header>
    <section>
        <article>
        </article>
        <article>
        </article>
        <article>
        </article>
        <article>
        </article>
        <article>
        </article>
    </section>

 

 *
        {
            box-sizing: border-box;
        }
        body
        {
            font-family: "HelveticaNeue-Light" , "Helvetica Neue Light" , "Helvetica Neue" , Helvetica, Arial, "Lucida Grande" , sans-serif;
            font-weight: 300;
        }
        nav
        {
            position: fixed;
            -webkit-transform: translate3d(0, 0, 0);
            left: 0;
            transition: all 0.4s ease;
            width: 100%;
            background: #34495e; 
            height: 0;
            overflow: hidden;
            transition-delay: 0.25s; 
            
        }
        .active nav
        {
            transition-delay: 0s;
        }
        nav ul
        {
            width: 95%;
            margin: 0 auto;
        }
        nav ul li
        {
            padding: 5px;
            border-bottom: 1px solid white; 
        }
        nav ul li:nth-child(1) a
        {
            transition-delay: 0.1s;
        }
        nav ul li:nth-child(2) a
        {
            transition-delay: 0.15s;
        }
        nav ul li:nth-child(3) a
        {
            transition-delay: 0.2s;
        }
        nav ul li:nth-child(4) a
        {
            transition-delay: 0.25s;
        }
        nav ul li:last-child
        {
            border: none;
        }
        nav ul li a
        {
            transition: all 0.2s cubic-bezier(0.455, 0.03, 0.515, 0.955);
            position: relative;
            display: block;
            text-decoration: none;
            color: white;
            font-size: 18px;
            padding: 10px;
            -webkit-transform: translate3d(100px, 0, 0);
            opacity: 0;
        }
        .active nav ul li a
        {
            -webkit-transform: translateX(0);
            opacity: 1;
        }
        header
        {
            transition: all 0.4s ease;
            -webkit-transform: translate3d(0, 0, 0);
            left: 0;
            width: 100%;
            position: fixed;
            background: #27ae60;
            color: white;
            padding: 20px;
            text-align: center;
            font-size: 20px;
            transition-delay: 0.25s;
        }
        .active header
        {
            transition-delay: .08s;
        }
        section
        {
            background: #f5f5f5;
            padding-top: 80px;
        }
        article
        {
            background: white;
            height: 500px;
            width: 95%;
            border-radius: 3px;
            margin: 0 auto 20px auto;
            border: 1px solid #e4e4e4;
        }
        .menu-button-target
        {
            background: transparent;
            border: none;
            outline: none;
            cursor: pointer;
            position: absolute;
            z-index: 200;
            left: 10px;
            height: 50px;
            top: 50%;
            margin-top: -23px;
            webkit-tap-highlight-color: rgba(0, 0, 0, 0);
        }
        .menu-button-target.active .menu-button
        {
            transition: background .2s ease;
            background-color: transparent;
        }
        .menu-button-target.active .menu-button:before, .menu-button-target.active .menu-button:after
        {
            transition: top .3s ease, -webkit-transform .3s .2s ease;
        }
        .menu-button-target.active .menu-button:before
        {
            top: 0;
            -webkit-transform: rotate(45deg);
        }
        .menu-button-target.active .menu-button:after
        {
            top: 0;
            -webkit-transform: rotate(-45deg);
        }
        .menu-button
        {
            position: relative;
            top: 50%;
            left: 0;
            display: block;
            width: 40px;
            height: 4px;
            margin-top: -2px;
            background-color: white;
            border-radius: 10px;
            transition: background .2s .2s;
        }
        .menu-button:before, .menu-button:after
        {
            content: "";
            display: block;
            position: absolute;
            width: 100%;
            height: 100%;
            left: 0;
            background-color: white;
            transition: top .3s .2s ease, -webkit-transform .3s ease;
            border-radius: 10px;
            -webkit-transform-origin: 50% 50%;
        }
        .menu-button:before
        {
            top: -10px;
            -webkit-transform: rotate(0deg);
        }
        .menu-button:after
        {
            top: 10px;
            -webkit-transform: rotate(0deg);
        }

 

var $menuTrigger = $('[data-ic-class="button-trigger"]'),
    $menuOverlay = $('[data-ic-class="overlay"]'),
    $menuItem = $('.menu-item'),
    activeClass = 'active',
    $nav = $('nav'),
    $navULHeight = $('.nav-items').outerHeight(),
    navOpen = false,
    $header = $('header');
 
        var isTouch = false;
        if ($('html').hasClass('touch')) {
            isTouch = true;
        }
 
        function menuFunction() {
            $menuTrigger.toggleClass(activeClass);
 
            if (!navOpen) {
 
                $nav.height($navULHeight);
                navOpen = true;
                $('body').addClass('active');
                $header.css('transform', 'translate3d(0, ' + $navULHeight + 'px, 0)');
 
            } else {
 
                $nav.height(0);
                $header.css('transform', 'translate3d(0, 0, 0)');
                navOpen = false;
                $('body').removeClass('active');
 
            }
        }
 
        if (isTouch) {
            $menuTrigger.on('touchstart', function () {
                menuFunction();
            });
        }
 
        if (!isTouch) {
            $menuTrigger.on('click', function () {
                menuFunction();
            });
        }



 

  • 大小: 36.9 KB
分享到:
评论

相关推荐

    css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单

    今天为大家在介绍的是一款适合放在手机网页的导航菜单。点击列表图标以下拉式的形式显示菜单,单击关闭,动画关闭。效果相当不错,喜欢的朋友可以学习下

    jquery+css3左右摇摆可滑动展开折叠导航菜单

    CSS3实现的一些菜单导航效果,在不支持CSS3属性的浏览器下效果较差一些。

    基于jquery+css3实现左右摇摆可滑动展开折叠圆形导航菜单

    基于jquery+css3实现左右摇摆可滑动展开折叠圆形导航菜单

    Css3折叠菜单-可展开的树形导航菜单.rar

    Css3折叠菜单-可展开的树形导航菜单,其实就是折叠、展开式的菜单,应用了HTML5重绘而成,无使用jquery,完全CSS3技术实现,面向Android手机等移动终端设备浏览,请注意不要使用IE等浏览器查看效果。

    JQuery&CSS;&CSS;+DIV实例大全.rar

    3.jquery+css实现简洁两级横向导航菜单,带动态效果 4.jQuery+CSS实现竖形动感导航菜单效果 5.jquery+div漂亮SmartMenu下拉菜单气泡透明效果 6.jQuery+div实现flash炫彩菜单插件下载 7.jquery+div实用漂亮...

    jQuery CSS3垂直手风琴展开收缩菜单代码.zip

    jQuery CSS3垂直手风琴展开收缩菜单代码

    可折叠树形菜单代码(带搜索功能)

    jQuery折叠树形菜单代码基于jquery.1.10.2.min.js制作,带搜索功能,搜索关键字,直接显示菜单项,展开收缩树形菜单。

    jQuery CSS 仿微信聊天风格的展开、折叠操作面板.rar

    jQuery CSS 仿微信聊天风格的展开、折叠操作面板,其实就是一个手风琴菜单,可用于手机界面的开发中,也可用于前端设计开发。

    jQuery CSS3 扁平化风格可展开收起的多级菜单.rar

    jQuery CSS3 扁平化风格可展开收起的多级菜单,或者说是手风琴菜单,相信大家平时也见到不少了,这种菜单默认情况下,子项是处于隐藏状态,鼠标点击主菜单后,会显示出子菜单项,同时其它展开的内容折叠收起,只保证...

    jquery实现点击向下展开菜单项(伸缩导航)效果

    本文实例讲述了jquery实现点击向下展开菜单项(伸缩导航)效果。分享给大家供大家参考。具体如下: 这里演示基于jquery打造的向下展开的多级导航条效果,纵向垂直排列,风格非常的简洁,鼠标...可折叠展开的导航条&lt;/

    超实用的jQuery代码段

    超实用的jQuery代码段精选近350个jQuery代码段,涵盖页面开发中绝大多数要点、技巧与方法,堪称史上最实用的jQuery代码参考书,可以视为网页设计与网站建设人员的好帮手。《超实用的jQuery代码段》的代码跨平台、跨...

    Bootstrap与jQuery UI框架设计(前端开发工程师系列)

    操作案例3:利用Bootstrap制作导航菜单 本章总结 本章作业 第5章jQuery Mobile入门 l jQuery Mobile入门 1.1 jQuery Mobile简介 1.2 jQuery Mobile准备文档 1.3 jQuery Mobile架构 1.3.1 jQuery Mobile属性 1.3.2 ...

    jQuery Menu 暖色、动画、折叠,可作导航菜单

    内容索引:脚本资源,jQuery,动感菜单,jQuery插件 jQuery Menu 暖色、动画、折叠,可作导航菜单,用这几个关键词似乎可以形容这款jQuery动感菜单,示例就是一个很好的应用,连同CSS文件一同拷贝至你的WEB项目中即可...

    jQuery Mobile快速入门245页完整版.pdf + 所有源码.7z

    第3章 使用页眉、工具栏和标签栏来导航  3.1 页眉栏  3.1.1 页眉基础知识  3.1.2 页眉结构  3.1.3 页眉定位  3.1.4 页眉按钮  3.1.5 既有文本又有图标的按钮  3.1.6 只带有图标的按钮  3.1.7 带有...

    《jQuery Mobile快速入门》.((美)Brad Broulik ).[PDF]

    作为jquery mobile的入门级读物,《jquery mobile快速入门》以示例方式讲解了jquery mobile的基本知识和核心特性,内容系统全面,便于理解。 《jquery mobile快速入门》总共分为10章,内容包括jquery mobile的基础...

    JavaScript基础教程第8版

    6.1 选择并转移导航菜单 99 6.2 动态地改变菜单 102 6.3 建立必须填写的字段 104 6.4 根据其他字段对字段进行检查 109 6.5 标识有问题的字段 111 6.6 准备进行表单验证 113 6.7 处理单选按钮 117 6.8...

    dropdowns:多级响应式下拉菜单

    响应式下拉导航菜单响应式、可访问、多级下拉菜单、可换肤且随时可用。 ##特征: 多达 3 级导航在断点处折叠成垂直菜单(默认为 768px) 触摸/点击时激活垂直菜单,悬停时激活水平菜单(我想添加对触摸事件的检测...

    拼图(pintuer)前端框架(css框架) v1.0

    增加了HTML5、CSS3、JS等技术组合应用,应用于最新的浏览器技术,同时兼容较早的浏览器,新旧结合,承前启后,开发者只需把框架文件引入到项目中,就可以初现快速的共同开发,改变以往建立PC网站同时,再建立手机...

Global site tag (gtag.js) - Google Analytics