会滑出从任何页面边缘的一组固定的菜单。滑出,从左侧和右侧的两个菜单也可以与主体移动到左侧或右侧,分别组合使用,因此被“推”。
有这样的例子,如何触发的开幕和闭幕的菜单和一些例如媒体查询。
图2
style="float:none;" title="3.jpg"/>
图3
style="float:none;" title="4fb69195-1c4e-4c9a-b528-814905b8ed99.jpg"/>
HTML
<!-- body has the class "cbp-spmenu-push" --> <nav class="cbp-spmenu cbp-spmenu-vertical cbp-spmenu-left" id="cbp-spmenu-s1"> <h3>Menu</h3> <a href="#">Celery seakale</a> <a href="#">Dulse daikon</a> <a href="#">Zucchini garlic</a> <a href="#">Catsear azuki bean</a> <a href="#">Dandelion bunya</a> <a href="#">Rutabaga</a> </nav> <nav class="cbp-spmenu cbp-spmenu-vertical cbp-spmenu-right" id="cbp-spmenu-s2"> <h3>Menu</h3> <a href="#">Celery seakale</a> <a href="#">Dulse daikon</a> <a href="#">Zucchini garlic</a> <a href="#">Catsear azuki bean</a> <a href="#">Dandelion bunya</a> <a href="#">Rutabaga</a> </nav> <nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-top" id="cbp-spmenu-s3"> <h3>Menu</h3> <a href="#">Celery seakale</a> <a href="#">Dulse daikon</a> <a href="#">Zucchini garlic</a> <a href="#">Catsear azuki bean</a> <a href="#">Dandelion bunya</a> <a href="#">Rutabaga</a> <a href="#">Celery seakale</a> <a href="#">Dulse daikon</a> <a href="#">Zucchini garlic</a> <a href="#">Catsear azuki bean</a> <a href="#">Dandelion bunya</a> <a href="#">Rutabaga</a> </nav> <nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom" id="cbp-spmenu-s4"> <h3>Menu</h3> <a href="#">Celery seakale</a> <a href="#">Dulse daikon</a> <a href="#">Zucchini garlic</a> <a href="#">Catsear azuki bean</a> <a href="#">Dandelion bunya</a> <a href="#">Rutabaga</a> <a href="#">Celery seakale</a> <a href="#">Dulse daikon</a> <a href="#">Zucchini garlic</a> <a href="#">Catsear azuki bean</a> <a href="#">Dandelion bunya</a> <a href="#">Rutabaga</a> </nav> <div class="container"> <div class="main"> <section> <h2>Slide Menus</h2> <!-- Class "cbp-spmenu-open" gets applied to menu --> <button id="showLeft">Show/Hide Left Slide Menu</button> <button id="showRight">Show/Hide Right Slide Menu</button> <button id="showTop">Show/Hide Top Slide Menu</button> <button id="showBottom">Show/Hide Bottom Slide Menu</button> </section> <section class="buttonset"> <h2>Push Menus</h2> <!-- Class "cbp-spmenu-open" gets applied to menu and "cbp-spmenu-push-toleft" or "cbp-spmenu-push-toright" to the body --> <button id="showLeftPush">Show/Hide Left Push Menu</button> <button id="showRightPush">Show/Hide Right Push Menu</button> </section> </div> </div>
css
/* General styles for all menus */ .cbp-spmenu { background: #47a3da; position: fixed; } .cbp-spmenu h3 { color: #afdefa; font-size: 1.9em; padding: 20px; margin: 0; font-weight: 300; background: #0d77b6; } .cbp-spmenu a { display: block; color: #fff; font-size: 1.1em; font-weight: 300; } .cbp-spmenu a:hover { background: #258ecd; } .cbp-spmenu a:active { background: #afdefa; color: #47a3da; } /* Orientation-dependent styles for the content of the menu */ .cbp-spmenu-vertical { width: 240px; height: 100%; top: 0; z-index: 1000; } .cbp-spmenu-vertical a { border-bottom: 1px solid #258ecd; padding: 1em; } .cbp-spmenu-horizontal { width: 100%; height: 150px; left: 0; z-index: 1000; overflow: hidden; } .cbp-spmenu-horizontal h3 { height: 100%; width: 20%; float: left; } .cbp-spmenu-horizontal a { float: left; width: 20%; padding: 0.8em; border-left: 1px solid #258ecd; } /* Vertical menu that slides from the left or right */ .cbp-spmenu-left { left: -240px; } .cbp-spmenu-right { right: -240px; } .cbp-spmenu-left.cbp-spmenu-open { left: 0px; } .cbp-spmenu-right.cbp-spmenu-open { right: 0px; } /* Horizontal menu that slides from the top or bottom */ .cbp-spmenu-top { top: -150px; } .cbp-spmenu-bottom { bottom: -150px; } .cbp-spmenu-top.cbp-spmenu-open { top: 0px; } .cbp-spmenu-bottom.cbp-spmenu-open { bottom: 0px; } /* Push classes applied to the body */ .cbp-spmenu-push { overflow-x: hidden; position: relative; left: 0; } .cbp-spmenu-push-toright { left: 240px; } .cbp-spmenu-push-toleft { left: -240px; } /* Transitions */ .cbp-spmenu, .cbp-spmenu-push { -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; transition: all 0.3s ease; } /* Example media queries */ @media screen and (max-width: 55.1875em){ .cbp-spmenu-horizontal { font-size: 75%; height: 110px; } .cbp-spmenu-top { top: -110px; } .cbp-spmenu-bottom { bottom: -110px; } } @media screen and (max-height: 26.375em){ .cbp-spmenu-vertical { font-size: 90%; width: 190px; } .cbp-spmenu-left, .cbp-spmenu-push-toleft { left: -190px; } .cbp-spmenu-right { right: -190px; } .cbp-spmenu-push-toright { left: 190px; } }
注:使用Classie -类辅助功能@ desandro
在JAVASCRIPT
var menuLeft = document.getElementById( 'cbp-spmenu-s1' ), menuRight = document.getElementById( 'cbp-spmenu-s2' ), menuTop = document.getElementById( 'cbp-spmenu-s3' ), menuBottom = document.getElementById( 'cbp-spmenu-s4' ), showLeft = document.getElementById( 'showLeft' ), showRight = document.getElementById( 'showRight' ), showTop = document.getElementById( 'showTop' ), showBottom = document.getElementById( 'showBottom' ), showLeftPush = document.getElementById( 'showLeftPush' ), showRightPush = document.getElementById( 'showRightPush' ), body = document.body; showLeft.onclick = function() { classie.toggle( this, 'active' ); classie.toggle( menuLeft, 'cbp-spmenu-open' ); disableOther( 'showLeft' ); }; showRight.onclick = function() { classie.toggle( this, 'active' ); classie.toggle( menuRight, 'cbp-spmenu-open' ); disableOther( 'showRight' ); }; showTop.onclick = function() { classie.toggle( this, 'active' ); classie.toggle( menuTop, 'cbp-spmenu-open' ); disableOther( 'showTop' ); }; showBottom.onclick = function() { classie.toggle( this, 'active' ); classie.toggle( menuBottom, 'cbp-spmenu-open' ); disableOther( 'showBottom' ); }; showLeftPush.onclick = function() { classie.toggle( this, 'active' ); classie.toggle( body, 'cbp-spmenu-push-toright' ); classie.toggle( menuLeft, 'cbp-spmenu-open' ); disableOther( 'showLeftPush' ); }; showRightPush.onclick = function() { classie.toggle( this, 'active' ); classie.toggle( body, 'cbp-spmenu-push-toleft' ); classie.toggle( menuRight, 'cbp-spmenu-open' ); disableOther( 'showRightPush' ); }; function disableOther( button ) { if( button !== 'showLeft' ) { classie.toggle( showLeft, 'disabled' ); } if( button !== 'showRight' ) { classie.toggle( showRight, 'disabled' ); } if( button !== 'showTop' ) { classie.toggle( showTop, 'disabled' ); } if( button !== 'showBottom' ) { classie.toggle( showBottom, 'disabled' ); } if( button !== 'showLeftPush' ) { classie.toggle( showLeftPush, 'disabled' ); } if( button !== 'showRightPush' ) { classie.toggle( showRightPush, 'disabled' ); } }