Skip to content

Instantly share code, notes, and snippets.

Created January 9, 2014 18:02
Show Gist options
  • Save anonymous/8338869 to your computer and use it in GitHub Desktop.
Save anonymous/8338869 to your computer and use it in GitHub Desktop.

Revisions

  1. @invalid-email-address Anonymous created this gist Jan 9, 2014.
    7 changes: 7 additions & 0 deletions A-Pen-by-Rohit-Begani.markdown
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    A Pen by Rohit Begani
    ---------------------


    A [Pen](http://codepen.io/rohitbegani/pen/EyuCi) by [Rohit Begani](http://codepen.io/rohitbegani) on [CodePen](http://codepen.io/).

    [License](http://codepen.io/rohitbegani/pen/EyuCi/license).
    54 changes: 54 additions & 0 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,54 @@
    <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>
    147 changes: 147 additions & 0 deletions script.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,147 @@
    /**********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();

    })();
    272 changes: 272 additions & 0 deletions style.css
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,272 @@
    /* 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;
    }