Heim  >  Artikel  >  Web-Frontend  >  jQuery和CSS3堆叠卡片样式导航菜单特效_html/css_WEB-ITnose

jQuery和CSS3堆叠卡片样式导航菜单特效_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:30:531281Durchsuche

简要教程

这是一款效果非常炫酷的jQuery和CSS3堆叠卡片样式导航菜单特效。该导航菜单特效在用户点击汉堡包按钮的时候,各个子菜单会以卡片的形式堆叠排列在视口中,点击相应的子菜单就会切换到相应的页面上。

查看演示        下载插件

使用方法

HTML结构

该导航菜单的HTML结构采用嵌套

的HTML结构,其中div.demo__close-menu是汉堡包按钮,每一个div.demo__section是一个子页面。
<div class="demo">  <div class="demo__close-menu"></div>  <div class="demo__section demo__section-1" data-section="1">    <div class="demo__menu-btn"></div>    <h2 class="demo__section-heading">Contact</h2>  </div>  <div class="demo__section demo__section-2 active" data-section="2">    <div class="demo__menu-btn"></div>    <h2 class="demo__section-heading">About</h2>  </div>  <div class="demo__section demo__section-3 inactive" data-section="3">    <div class="demo__menu-btn"></div>    <h2 class="demo__section-heading">Team</h2>  </div>  <div class="demo__section demo__section-4 inactive" data-section="4">    <div class="demo__menu-btn"></div>    <h2 class="demo__section-heading">Projects</h2>  </div></div>

CSS样式

汉堡包图标按钮的样式如下:

.demo__close-menu {  position: absolute;  left: 22px;  top: 22px;  width: 29px;  cursor: pointer;}.demo__close-menu:before, .demo__close-menu:after {  content: "";  position: absolute;  left: 0;  top: 8px;  width: 100%;  height: 4px;  background: #7097B0;}.demo__close-menu:before {  -webkit-transform: rotate(45deg);          transform: rotate(45deg);}.demo__close-menu:after {  -webkit-transform: rotate(-45deg);          transform: rotate(-45deg);}

堆叠卡片页面的主要CSS样式如下:

.demo {  overflow: hidden;  position: absolute;  width: 100%;  height: 100%;  background: #CDDBEE;  border-radius: 6px;} .demo__section {  z-index: 1;  position: absolute;  left: 0;  top: 0;  width: 100%;  height: 100%;  padding: 25px 0 0 65px;  border-radius: inherit;  -webkit-transition: -webkit-transform 0.4s;  transition: -webkit-transform 0.4s;  transition: transform 0.4s;  transition: transform 0.4s, -webkit-transform 0.4s;  -webkit-transform: translate3d(0, 0, 0);  transform: translate3d(0, 0, 0);  will-change: transform;} .demo.menu-active .demo__section-1 {  -webkit-transform: translate3d(20px, 60px, 0);  transform: translate3d(20px, 60px, 0);} .demo__section-1.inactive {  -webkit-transform: translate3d(100%, 60px, 0);  transform: translate3d(100%, 60px, 0);} .demo.menu-active .demo__section-2 {  -webkit-transform: translate3d(40px, 120px, 0);  transform: translate3d(40px, 120px, 0);} .demo__section-2.inactive {  -webkit-transform: translate3d(100%, 120px, 0);  transform: translate3d(100%, 120px, 0);} .demo.menu-active .demo__section-3 {  -webkit-transform: translate3d(60px, 180px, 0);  transform: translate3d(60px, 180px, 0);} .demo__section-3.inactive {  -webkit-transform: translate3d(100%, 180px, 0);  transform: translate3d(100%, 180px, 0);} .demo.menu-active .demo__section-4 {  -webkit-transform: translate3d(80px, 240px, 0);  transform: translate3d(80px, 240px, 0);} .demo__section-4.inactive {  -webkit-transform: translate3d(100%, 240px, 0);  transform: translate3d(100%, 240px, 0);} .demo.menu-active .demo__section { cursor: pointer; } .demo__section-heading {  text-transform: uppercase;  font-size: 12px;  -webkit-transition: -webkit-transform 0.4s;  transition: -webkit-transform 0.4s;  transition: transform 0.4s;  transition: transform 0.4s, -webkit-transform 0.4s;} .demo.menu-active .demo__section-heading {  -webkit-transform: translateX(-45px);  transform: translateX(-45px);}

JavaScript

该特效中使用jQuery代码来处理汉堡包按钮的点击事件和堆叠卡片菜单的切换事件。

$(document).ready(function () {    var $demo = $('.demo');    var numOfSections = $('.demo__section').length;    $(document).on('click', '.demo__menu-btn', function () {        $demo.addClass('menu-active');    });    $(document).on('click', '.demo__close-menu', function () {        $demo.removeClass('menu-active');    });    $(document).on('click', '.demo.menu-active .demo__section', function () {        var $section = $(this);        var index = +$section.data('section');        $('.demo__section.active').removeClass('active');        $('.demo__section.inactive').removeClass('inactive');        $section.addClass('active');        $demo.removeClass('menu-active');        for (var i = index + 1; i <= numOfSections; i++) {            if (window.CP.shouldStopExecution(1)) {                break;            }            $('.demo__section[data-section=' + i + ']').addClass('inactive');        }        window.CP.exitedLoop(1);    });});

来源:jQuery之家

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn