A Pen by Rohit Begani on CodePen.
Created
January 9, 2014 18:02
-
-
Save anonymous/8338869 to your computer and use it in GitHub Desktop.
A Pen by Rohit Begani.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html lang="en"> | |
<head> | |
<meta charset="UTF-8" /> | |
<title> Batman </title> | |
<link rel="stylesheet" type="text/css" href="normalize.css" /> | |
<link rel="stylesheet" type="text/css" href="component.css" /> | |
<script src="modernizr.custom.js"></script> | |
</head> | |
<body> | |
<div id="st-container" class="st-container"> | |
<nav class="st-menu st-effect-1"> | |
<h2>Superbar</h2> | |
<ul> | |
<li><a href="#">Batman</a></li> | |
<li><a href="#">Robin</a></li> | |
<li><a href="#">Batgirl</a></li> | |
<li><a href="#">Catwoman</a></li> | |
</ul> | |
</nav> | |
<div class="st-content"> | |
<div class="st-content-inner"> | |
<div class="main clearfix"> | |
<div id="st-trigger-effects" class="column"> | |
<button class="slide-button" data-effect="st-effect-1">Menu</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div id="batman"> | |
<div class="inner-y"> | |
<div class="inner-b"> | |
<div class="cut-lr"></div> | |
<div class="cut-rr"></div> | |
<div class="cut-bll"></div> | |
<div class="cut-brr"></div> | |
<div class="cut-blll"></div> | |
<div class="cut-bllr"></div> | |
<div class="cut-brll"></div> | |
<div class="cut-brlr"></div> | |
<div class="cut-hd"></div> | |
<div class="drw-hd-m"></div> | |
<div class="drw-hd-lt"></div> | |
<div class="drw-hd-rt"></div> | |
</div> | |
</div> | |
</div> | |
<script src="classie.js"></script> | |
<script src="sidebarEffects.js"></script> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/**********CLASSIE******/ | |
/*! | |
* classie - class helper functions | |
* from bonzo https://github.com/ded/bonzo | |
* | |
* classie.has( elem, 'my-class' ) -> true/false | |
* classie.add( elem, 'my-new-class' ) | |
* classie.remove( elem, 'my-unwanted-class' ) | |
* classie.toggle( elem, 'my-class' ) | |
*/ | |
/*jshint browser: true, strict: true, undef: true */ | |
/*global define: false */ | |
( function( window ) { | |
'use strict'; | |
// class helper functions from bonzo https://github.com/ded/bonzo | |
function classReg( className ) { | |
return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); | |
} | |
// classList support for class management | |
// altho to be fair, the api sucks because it won't accept multiple classes at once | |
var hasClass, addClass, removeClass; | |
if ( 'classList' in document.documentElement ) { | |
hasClass = function( elem, c ) { | |
return elem.classList.contains( c ); | |
}; | |
addClass = function( elem, c ) { | |
elem.classList.add( c ); | |
}; | |
removeClass = function( elem, c ) { | |
elem.classList.remove( c ); | |
}; | |
} | |
else { | |
hasClass = function( elem, c ) { | |
return classReg( c ).test( elem.className ); | |
}; | |
addClass = function( elem, c ) { | |
if ( !hasClass( elem, c ) ) { | |
elem.className = elem.className + ' ' + c; | |
} | |
}; | |
removeClass = function( elem, c ) { | |
elem.className = elem.className.replace( classReg( c ), ' ' ); | |
}; | |
} | |
function toggleClass( elem, c ) { | |
var fn = hasClass( elem, c ) ? removeClass : addClass; | |
fn( elem, c ); | |
} | |
var classie = { | |
// full names | |
hasClass: hasClass, | |
addClass: addClass, | |
removeClass: removeClass, | |
toggleClass: toggleClass, | |
// short names | |
has: hasClass, | |
add: addClass, | |
remove: removeClass, | |
toggle: toggleClass | |
}; | |
// transport | |
if ( typeof define === 'function' && define.amd ) { | |
// AMD | |
define( classie ); | |
} else { | |
// browser global | |
window.classie = classie; | |
} | |
})( window ); | |
/**********************/ | |
/** | |
* sidebarEffects.js v1.0.0 | |
* http://www.codrops.com | |
* | |
* Licensed under the MIT license. | |
* http://www.opensource.org/licenses/mit-license.php | |
* | |
* Copyright 2013, Codrops | |
* http://www.codrops.com | |
*/ | |
var SidebarMenuEffects = (function() { | |
function hasParentClass( e, classname ) { | |
if(e === document) return false; | |
if( classie.has( e, classname ) ) { | |
return true; | |
} | |
return e.parentNode && hasParentClass( e.parentNode, classname ); | |
} | |
// http://coveroverflow.com/a/11381730/989439 | |
function mobilecheck() { | |
var check = false; | |
(function(a){if(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); | |
return check; | |
} | |
function init() { | |
var container = document.getElementById( 'st-container' ), | |
buttons = Array.prototype.slice.call( document.querySelectorAll( '#st-trigger-effects > button' ) ), | |
// event type (if mobile use touch events) | |
eventtype = mobilecheck() ? 'touchstart' : 'click', | |
resetMenu = function() { | |
classie.remove( container, 'st-menu-open' ); | |
}, | |
bodyClickFn = function(evt) { | |
if( !hasParentClass( evt.target, 'st-menu' ) ) { | |
resetMenu(); | |
document.removeEventListener( eventtype, bodyClickFn ); | |
} | |
}; | |
buttons.forEach( function( el, i ) { | |
var effect = el.getAttribute( 'data-effect' ); | |
el.addEventListener( eventtype, function( ev ) { | |
ev.stopPropagation(); | |
ev.preventDefault(); | |
container.className = 'st-container'; // clear | |
classie.add( container, effect ); | |
setTimeout( function() { | |
classie.add( container, 'st-menu-open' ); | |
}, 25 ); | |
document.addEventListener( eventtype, bodyClickFn ); | |
}); | |
} ); | |
} | |
init(); | |
})(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Code for batman logo by Damien Pereira Morberto*/ | |
#batman { | |
position:absolute; | |
left:50%; | |
top:50%; | |
margin:-100px 0px 0px -175px; | |
width:350px; | |
height:200px; | |
background-color:#111; | |
border-radius: 175px / 100px; | |
} | |
.inner-y { | |
position: absolute; | |
left: 50%; | |
top: 50%; | |
margin: -87px 0px 0px -160px; | |
width: 320px; | |
height: 174px; | |
background-color: #edc233; | |
border-radius: 195px / 106px; | |
overflow:hidden; | |
} | |
.inner-b { | |
position: absolute; | |
left: 50%; | |
top: 50%; | |
margin: -75px 0px 0px -148px; | |
width: 296px; | |
height: 150px; | |
background-color: #111; | |
border-radius: 205px / 106px; | |
} | |
.cut-lr, .cut-rr { | |
position: absolute; | |
width: 54px; | |
height: 54px; | |
border-radius: 500px; | |
background-color: #edc233; | |
top: 32px; | |
margin: -27px 0px 0px -27px; | |
} | |
.cut-bll, .cut-brr { | |
position: absolute; | |
width: 78px; | |
height: 44px; | |
border-radius: 205px / 106px; | |
background-color: #edc233; | |
bottom:-2px; | |
} | |
.cut-lr { | |
left:102px; | |
} | |
.cut-rr { | |
left:192px; | |
} | |
.cut-bll { | |
-webkit-transform:rotate(45deg); | |
-moz-transform:rotate(45deg); | |
-ms-transform:rotate(45deg); | |
-o-transform:rotate(45deg); | |
transform:rotate(45deg); | |
left:42px; | |
} | |
.cut-brr { | |
-webkit-transform:rotate(-45deg); | |
-moz-transform:rotate(-45deg); | |
-ms-transform:rotate(-45deg); | |
-o-transform:rotate(-45deg); | |
transform:rotate(-45deg); | |
right:42px; | |
} | |
.cut-blll, .cut-bllr, .cut-brll, .cut-brlr { | |
position: absolute; | |
width: 70px; | |
height: 32px; | |
border-radius: 205px / 106px; | |
background-color: #edc233; | |
bottom: 1px; | |
} | |
.cut-blll, .cut-brll { | |
-webkit-transform:rotate(-112deg); | |
-moz-transform:rotate(-112deg); | |
-ms-transform:rotate(-112deg); | |
-o-transform:rotate(-112deg); | |
transform:rotate(-112deg); | |
} | |
.cut-blll { | |
right:72px; | |
} | |
.cut-brll { | |
left:93px; | |
} | |
.cut-brlr { | |
left:72px; | |
} | |
.cut-bllr { | |
right:93px; | |
} | |
.cut-brlr, .cut-bllr { | |
-webkit-transform:rotate(-67deg); | |
-moz-transform:rotate(-67deg); | |
-ms-transform:rotate(-67deg); | |
-o-transform:rotate(-67deg); | |
transform:rotate(-67deg); | |
} | |
.cut-hd { | |
width: 110px; | |
height: 34px; | |
background: #edc233; | |
left: 92px; | |
top:-2px; | |
position: absolute; | |
} | |
.drw-hd-m { | |
position: absolute; | |
width: 36px; | |
height: 56px; | |
background-color: #111; | |
left: 50%; | |
margin-left: -19px; | |
border-radius: 230px / 110px; | |
top: 23px; | |
} | |
.drw-hd-lt, .drw-hd-rt { | |
position: absolute; | |
width: 0; | |
height: 0; | |
top:2px; | |
border-bottom: 28px solid #111; | |
} | |
.drw-hd-lt { | |
left:129px; | |
border-right: 14px solid transparent; | |
border-left: 1px solid transparent; | |
} | |
.drw-hd-rt { | |
right:131px; | |
border-left: 14px solid transparent; | |
border-right: 1px solid transparent; | |
} | |
.slide-button{ | |
float: right; | |
padding-left: 100%; | |
padding-top: 20px; | |
padding-bottom: 20px; | |
padding-right: 20px; | |
background-color: #edc233; | |
border: none; | |
} | |
/***********************************************************************************************************/ | |
*, | |
*:after, | |
*::before { | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
html, | |
body, | |
.st-container, | |
.st-content { | |
height: 100%; | |
} | |
.st-content { | |
overflow-y: scroll; | |
background: #303030; | |
} | |
.st-content, | |
.st-content-inner { | |
position: relative; | |
} | |
.st-container { | |
position: relative; | |
overflow: hidden; | |
} | |
.st-menu { | |
position: absolute; | |
top: 0; | |
left: 0; | |
z-index: 100; | |
visibility: hidden; | |
width: 300px; | |
height: 100%; | |
background: #edc233; | |
-webkit-transition: all 0.5s; | |
transition: all 0.5s; | |
opacity: 0.9; | |
} | |
.st-menu ul { | |
margin: 0; | |
padding: 0; | |
list-style: none; | |
} | |
.st-menu h2 { | |
margin: 0; | |
padding: 1em; | |
color: #484848; | |
text-shadow: 0 0 1px rgba(0,0,0,0.1); | |
font-weight: 300; | |
font-size: 2em; | |
} | |
.st-menu ul li a { | |
text-decoration: none; | |
display: block; | |
padding: 1em 1em 1em 1.2em; | |
outline: none; | |
box-shadow: inset 0 -1px rgba(0,0,0,0.2); | |
color: #484848; | |
text-transform: uppercase; | |
text-shadow: 0 0 1px rgba(255,255,255,0.1); | |
letter-spacing: 1px; | |
font-weight: 400; | |
-webkit-transition: background 0.3s, box-shadow 0.3s; | |
transition: background 0.3s, box-shadow 0.3s; | |
} | |
.st-menu ul li:first-child a { | |
box-shadow: inset 0 -1px rgba(0,0,0,0.2), inset 0 1px rgba(0,0,0,0.2); | |
} | |
.st-menu ul li a:hover { | |
background: rgba(0,0,0,0.2); | |
box-shadow: inset 0 -1px rgba(0,0,0,0); | |
color: #fff; | |
} | |
/* Individual effects */ | |
/* Effect 1: Slide in on top */ | |
.st-effect-1.st-menu { | |
visibility: visible; | |
-webkit-transform: translate3d(-100%, 0, 0); | |
transform: translate3d(-100%, 0, 0); | |
} | |
.st-effect-1.st-menu-open .st-effect-1.st-menu { | |
visibility: visible; | |
-webkit-transform: translate3d(0, 0, 0); | |
transform: translate3d(0, 0, 0); | |
} | |
.st-effect-1.st-menu::after { | |
display: none; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment