JSFiddle - React, Tailwind, and code Playground
by mreis1
HTML
<script src="https://dl.dropboxusercontent.com/u/21686889/CSS-Multilevel-Menu/modernizr.custom.js"></script>
<!-- MAIN WRAPPER -->
<div class="main clearfix demo-1">
<div class="column">
<p>Experiência com animações.
<br/>HTML5,
<br/>CSS3,
<br/>Modernizr</p>
</div>
<div class="column">
<div id="dl-menu" class="dl-menuwrapper">
<button>Open Menu</button>
<ul class="dl-menu">
<!--back experiment-->
<li class="dl-back"> <a href="#">Back</a>
</li>
<!--Menu item with submenu-->
<li> <a href="#">Fashion</a>
<ul class="dl-submenu">
<li> <a href="#">Shoes</a>
</li>
<li> <a href="#">Sockets</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
CSS
body, html {
font-size: 100%;
padding: 0;
margin: 0;
}
/* Reset */
*, *:after, *:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before, .clearfix:after {
content:" ";
display: table;
}
.clearfix:after {
clear: both;
}
body {
font-family: Arial, sans-serif;
color: #b1aea6;
background: #fffcf5;
min-height: 800px;
}
a {
color: #ccc;
text-decoration: none;
}
a:hover {
color: #fff;
}
/*
- - - - End of resets
---------------------
------------------------------------------*/
.column {
float: left;
width: 50%;
padding: 0 2em;
min-height: 300px;
min-width: 320px;
position: relative;
}
.column:nth-child(2) {
min-height: 400px;
box-shadow: -1px 0 0 rgba(0, 0, 0, 0.1);
}
/*WTF? porque é que ela esta a atribuir estas propriedades ao before?*/
.column:last-child:before {
content:'';
position: absolute;
height: 7px;
background: #ceccc6;
top: 100px;
left: 10px;
}
.column p {
font-weight: 300;
font-size: 2em;
padding: 0;
margin: 0;
text-align: right;
line-height: 1.5;
}
@media screen and (max-width: 46.0625em) {
.main {
padding: 0;
}
.column {
width: 100%;
min-width: auto;
min-height: auto;
padding: 3em 2em;
}
.column p {
text-align: left;
font-size: 1.5em;
}
.column:nth-child(2) {
box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);
background-position: 90px 3em;
}
}
/*style menu*/
.dl-menuwrapper {
width: 100%;
max-width: 300px;
float: left;
position: relative;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
-webkit-perspective-origin: 50% 200%;
...
JavaScript
/**
* jquery.dlmenu.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
*/
;( function( $, window, undefined ) {
'use strict';
// global
var Modernizr = window.Modernizr,
$body = $('body');
// Object
$.DLMenu = function (options, element)
{
this.$el = $(element);
this._init(options);
};
// the options
$.DLMenu.defaults = {
animationClasses: { in : 'dl-animate-in-1',
out: 'dl-animate-out-1'
}
};
$.DLMenu.prototype = {
_init: function (options) {
// $.extend( [deep ], target, object1 [, objectN ] )
/* deep Type: Boolean If true, the merge becomes recursive (aka. deep copy).
target Type: Object The object to extend. It will receive the new properties.
object1 Type: Object An object containing additional properties to merge in.
objectN Type: Object Additional objects containing properties to merge in.
*/
this.options = $.extend(true, {}, $.DLMenu.defaults, options);
// cache some elements and initialize some variables
this._config();
var animEndEventNames = {
'WebkitAnimation': 'webkitAnimationEnd',
'OAnimation': 'oAnimationEnd',
'msAnimation': 'MSAnimationEnd',
'animation': 'animationend'
},
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
};
// animation end event name
...