一款由css3和jquery实现的卡面折叠式菜单

之前已经为大家介绍了好多导航菜单。今天为大家再带来一款由css3和jquery实现的卡片折叠式菜单。当菜单关闭的时候,有三维堆叠的效果。我们一起看下效果图:

在线预览   源码下载

html代码:

 <div id="wrapper">
        <h1>
            <i class="icon-sort-by-attributes"></i>CSS3 <span>Card Deck Drop Down</span></h1>
        <div class="card-drop">
            <a class="toggle active" href="#"><i class="icon-camera-retro"></i><span class="label-active">
                sridhar</span> </a>
            <ul>
                <li class="" style="z-index: 6; top: 60px; width: 70%; margin-left: 40px;"><a data-label="Everyting"
                    href="#"><i class="icon-suitcase"></i>Everyting</a> </li>
                <li class="" style="z-index: 5; top: 120px; width: 70%; margin-left: 40px;"><a data-label="Design"
                    href="#"><i class="icon-magic"></i>Design</a> </li>
                <li class="" style="z-index: 4; top: 180px; width: 70%; margin-left: 40px;"><a data-label="UI-UX"
                    href="#"><i class="icon-bolt"></i>UI-UX</a> </li>
                <li class="" style="z-index: 3; top: 240px; width: 70%; margin-left: 40px;"><a data-label="Print"
                    href="#"><i class="icon-tint"></i>Print</a> </li>
                <li class="" style="z-index: 2; top: 300px; width: 70%; margin-left: 40px;"><a data-label="Photography"
                    href="#"><i class="icon-camera-retro"></i>Phtography</a> </li>
                <li class="active" style="z-index: 1; top: 360px; width: 70%; margin-left: 40px;"><a
                    data-label="sridhar" href="#"><i class="icon-camera-retro"></i>sridhar</a> </li>
            </ul>
        </div>
        <br />  <br />  <br />
             <script src="/scripts/2bc/_gg_970_90.js" type="text/javascript"></script>
    </div>

css3代码:

   html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video
        {
            margin: 0;
            padding: 0;
            border: 0;
            font: inherit;
            font-size: 100%;
            vertical-align: baseline;
        }

        ol, ul
        {
            list-style: none;
        }
        body
        {
            background-color: #F2EFE9;
            overflow: visible;
            padding-top: 40px;
            font-family: helvetica, arial, sans-serif;
            font-size: 1em;
        }

        *
        {
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }

        #wrapper
        {
            width: 680px;
            margin: 0 auto;
            height: 1000px;
        }

        h1
        {
            font-size: 2.5em;
            text-align: center;
            font-weight: bold;
            margin-bottom: 10px;
            line-height: 1.4em;
            color: #4e6a6a;
            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
            font-family: helvetica, arial, sans-serif;
        }
        h1 span
        {
            font-weight: lighter;
        }

        .card-drop
        {
            max-width: 300px;
            position: relative;
            margin: 0 auto;
            -webkit-perspective: 800px;
            -moz-perspective: 800px;
            -ms-perspective: 800px;
            -o-perspective: 800px;
            perspective: 800px;
        }
        .card-drop a
        {
            display: block;
            width: 100%;
            background-color: salmon;
            padding: 20px 0 20px 20px;
            height: 60px;
            text-decoration: none;
            color: #1e2929;
            background-color: #5f8181;
            border-bottom: 1px solid #4e6a6a;
            -webkit-transition: all 0.3s ease-out;
            -moz-transition: all 0.3s ease-out;
            -o-transition: all 0.3s ease-out;
            transition: all 0.3s ease-out;
        }
        .card-drop a i
        {
            display: inline-block;
            width: 20px;
        }
        .card-drop > a.toggle
        {
            position: relative;
            z-index: 300;
            -webkit-backface-visibility: hidden;
            -moz-backface-visibility: hidden;
            -ms-backface-visibility: hidden;
            -o-backface-visibility: hidden;
            backface-visibility: hidden;
            -webkit-transform-style: preserve-3d;
            -moz-transform-style: preserve-3d;
            -ms-transform-style: preserve-3d;
            -o-transform-style: preserve-3d;
            transform-style: preserve-3d;
            -webkit-transform-origin: 50% 0%;
            -moz-transform-origin: 50% 0%;
            -ms-transform-origin: 50% 0%;
            -o-transform-origin: 50% 0%;
            transform-origin: 50% 0%;
            -webkit-transition: 0.1s linear;
            -moz-transition: 0.1s linear;
            -o-transition: 0.1s linear;
            transition: 0.1s linear;
            background-color: #729797;
        }
        .card-drop > a.toggle:active
        {
            -webkit-transform: rotateX(60deg);
            -moz-transform: rotateX(60deg);
            -ms-transform: rotateX(60deg);
            -o-transform: rotateX(60deg);
            transform: rotateX(60deg);
        }
        .card-drop > a.toggle.active:before
        {
            content: "\f0d8";
        }
        .card-drop > a.toggle:before
        {
            border-left: 1px solid #4E6A6A;
            color: #344646;
            content: "?";
            display: block;
            font-family: ‘FontAwesome‘;
            font-size: 1.3em;
            height: 59px;
            line-height: 60px;
            position: absolute;
            right: 0;
            text-align: center;
            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
            top: 0;
            width: 60px;
        }
        .card-drop ul
        {
            position: absolute;
            height: 100%;
            top: 0;
            display: block;
            width: 100%;
        }
        .card-drop ul li
        {
            margin: 0 auto;
            -webkit-transition: all, 0.3s ease-out;
            -moz-transition: all, 0.3s ease-out;
            -o-transition: all, 0.3s ease-out;
            transition: all, 0.3s ease-out;
            position: absolute;
            top: 0;
            z-index: 0;
            width: 100%;
        }
        .card-drop ul li a:hover
        {
            background-color: #6a9090;
            color: #dce5e5;
        }
        .card-drop ul li.active a
        {
            color: #95b1b1;
            background-color: #547272;
            cursor: default;
        }
        .card-drop ul li.closed a:hover
        {
            cursor: default;
            background-color: #5f8181;
        }

js代码:

  $(document).ready(function () {
            (function ($) {
                //Author: Brady Sammons
                //URL: www.bradysammons.com
                /* -------------------------------------------------------- */
                /*    //set Global variables
                /* -------------------------------------------------------- */
                var cards = $(".card-drop"),
        toggler = cards.find(".toggle"),
        links = cards.find("ul>li>a"),
        li = links.parent(‘li‘),
        count = links.length,
        width = links.outerWidth();

                console.info(count);

                console.info(width);
                console.info(toggler);
                console.info(links);
                console.info(li);
                console.info(cards);

                //set z-Index of drop Items
                links.parent("li").each(function (i) {
                    $(this).css("z-index", count - i); //invert the index values
                });

                //set top margins & widths of li elements
                function setClosed() {
                    li.each(function (index) {
                        $(this).css("top", index * 2)

                         .css("width", width - index * 20)
                         .css("margin-left", (index * 20) / 2)
                                                .css("margin-left", (index * 20) / 2);
                    });

                    li.addClass(‘closed‘);
                    toggler.removeClass("active");
                }
                setClosed();

                /* -------------------------------------------------------- */
                /*    Toggler Click handler
                /* -------------------------------------------------------- */
                toggler.on("mousedown", function () {
                    var $this = $(this); //cache $(this)
                    //if the menu is active:
                    console.info(this);
                    if ($this.is(".active")) {
                        setClosed();
                    } else {
                        //if the menu is un-active:
                        $this.addClass("active");
                        li.removeClass(‘closed‘);
                        //set top margins
                        li.each(function (index) {
                            $(this).css("top", 60 * (index + 1))
                         .css("width", "70%")
                         .css("margin-left", "40px");
                        });
                    }
                });

                /* -------------------------------------------------------- */
                /*    Links Click handler
                /* -------------------------------------------------------- */
                links.on("click", function (e) {
                    var $this = $(this),
            label = $this.data("label");
                    icon = $this.children("i").attr("class");

                    li.removeClass(‘active‘);
                    if ($this.parent("li").is("active")) {
                        $this.parent(‘li‘).removeClass("active");
                    } else {
                        $this.parent("li").addClass("active");
                    }
                    toggler.children("span").text(label);
                    toggler.children("i").removeClass().addClass(icon);
                    setClosed();
                    e.preventDefault;
                });

            })(jQuery);
        }); //@ sourceURL=pen.js

注:本文爱编程原创文章,转载请注明原文地址:http://www.w2bc.com/Article/6739

时间: 2024-10-10 14:58:43

一款由css3和jquery实现的卡面折叠式菜单的相关文章

一款由css3和jquery实现的响应式设计导航

2014年响应式设计成为设计主流.今天要给大家带来一款由css3和jquery实现的响应式设计导航.当显示器为pc时,导航为横条.当客户端为移动端时,呈现坚形导航.我们一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <header> <nav id='cssmenu'> <div class="logo"> <a href="index.html">Responsive </a> &

一款基于css3和jquery实现的动画弹出层

今天给大家分享一款基于css3和jquery实现的动画弹出层.这款弹出层初页面面一个显示弹出层按钮.单击该按钮时,弹出层以非常炫的动画形式出现.弹出层有关闭按钮,单击半闭按钮,弹出层关闭.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="papersheet"> <!-- Action Trigger --> <div class="papersheet__trigger"> <!-

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

之前为大家介绍了好几款css3导航,今天为大家在介绍的是一款适合放在手机网页的导航菜单.点击列表图标以下拉式的形式显示菜单,单击关闭,动画关闭.效果相当不错.效果图如下: 在线预览   源码下载 这个实例由css3和依赖于jquery插件.下面是实现代码 html代码: <nav class="nav" role="navigation" style="height: 195px;"> <ul class="nav-i

分享10款web前端基于css3和jquery的源码预览

1.基于jquery和css3实现的摩天轮式分享按钮 之前分享了很多css3实现的按钮.今天要给大家带来一款基于jquery和css3实现的摩天轮式分享按钮.这款分享按钮页面底部有一个toggle按钮,单击该按钮,摩天轮按钮以动画的形式出现,各个分享按钮挂在摩天轮上. 在线演示 源码下载 2.纯css3实现的动画加载导航 之前为大家介绍了好几款导航菜单,今天为给大家再带来一款纯css3实现的动画加载导航.该导航出现的时候以动画的形式出现. 在线演示 源码下载 3.纯css3实现的鼠标经过图片显示

7款HTML5/CSS3应用新鲜出炉

这段时间我们已经陆续向大家分享了很多绚丽实用的HTML5/CSS3应用插件,今天,我从资料库中精选了7款最新出炉的HTML5/CSS3应用分享给大家,希望大家喜欢. 1.HTML5/CSS3发光文字 可自定义文字色彩 效果很赞 前几天我已经向大家分享了两款HTML5/CSS3文字特效,尤其是这款HTML5 Canvas字母文字颗粒动画 可设置重力感应,更是动感.今天要分享的这款HTML5/CSS3文字效果也十分帅,鼠标滑过文字时,文字会出现发光的特效,并且我们可以自定义文字和颜色. 在线演示 /

大爱jQuery,10款漂亮实用的jQuery/CSS3插件(整合免积分下载)

整合下载地址:http://download.csdn.net/detail/yangwei19680827/7343001 jQuery真的是一款很犀利的Javascript框架,利用jQuery我们可以做出很多非常酷而且实用的应用插件,我真的很爱jQuery,下面的这10款jQuery插件你也一定会喜欢的. 1.jquery鼠标悬停变暗突出显示特效 jquery鼠标悬停变暗突出显示特效是一款效果非常棒的jquery带开关灯效果的jquery相册插件Album 在线演示    /    源码下

面向Web Cloud的HTML5 App开发实战:Browser&amp;HTML5&amp;CSS3&amp;PhoneGap&amp;jQuery Mobile&amp; WebSocket&amp;Node.js(2天)

如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题. 课程以Android的五大核心:HAL.Binder.Native Service.Android Service(并以AMS和WMS为例).View System为主轴,一次性彻底掌握Android的精髓. 之所以是开发Android产品的必修课,缘起于: 1,     HAL是Android Framework&Application与底层硬件整合的关键技术和必修技

10款响应式的 jQuery UI 组件的代码和模块

1.Hashslider – 带有 Hash 标签功能的 jQuery 内容滑块 Hashslider 实现了常见的 jQuery 滑块的功能,特别之处在于给 URL 加上了标签,因此你能够连接到滑块的某块内容.滑块的内容也可以从外部的 HTML 文件获取. 在线演示 源码下载 2.Smint – 用于单页网站制作的 jQuery 导航菜单插件 Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮

过去几个月出炉的30款最喜欢的 jQuery 插件

在这篇文章中,我们收集了一些在过去的几个月里最喜欢的 jQuery 插件.为了使您更容易搜索到自己喜欢的 jQuery 插件,我们已经对插件进行了分类: 页面布局插件,图片和视频插件,滑块和画廊,排版插件等等. 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQuery 动画插件 十分惊艳的8个 HTML5 & JavaScript 特效 jQu