400 lines
11 KiB
CSS
400 lines
11 KiB
CSS
|
/*
|
||
|
* Menu Effects: A collection of CSS3 menu effects (degrades gracefully in IE8).
|
||
|
*
|
||
|
* Don't hesitate to create new effects and remove the ones you don't need.
|
||
|
*
|
||
|
* latest version and complete README available on Github:
|
||
|
* https://github.com/louisremi/menu-effects
|
||
|
*
|
||
|
* Copyright 2012 @louis_remi
|
||
|
* Licensed under the MIT license.
|
||
|
*
|
||
|
* Are you using this in a paid work?
|
||
|
* Send me music http://www.amazon.co.uk/wishlist/HNTU0468LQON
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
.menu, .menu ul {
|
||
|
list-style: none;
|
||
|
padding: 0;
|
||
|
}
|
||
|
|
||
|
.menu ul {
|
||
|
margin: 0;
|
||
|
}
|
||
|
|
||
|
.menu > li {
|
||
|
position: relative;
|
||
|
display: inline-block;
|
||
|
outline: 0;
|
||
|
}
|
||
|
|
||
|
.submenu {
|
||
|
position: absolute;
|
||
|
left: 0;
|
||
|
top: 100%;
|
||
|
z-index: 0;
|
||
|
overflow: hidden;
|
||
|
/* IE8 needs this */
|
||
|
overflow: hidden\0/ !important;
|
||
|
max-height: 0;
|
||
|
/* A .submenu should be only revealed when hovering the .menu */
|
||
|
pointer-events: none;
|
||
|
}
|
||
|
|
||
|
.menu > li .submenu, .menu > li .submenu {
|
||
|
pointer-events: auto;
|
||
|
z-index: 10;
|
||
|
max-height: 2000px;
|
||
|
-webkit-transition: none;
|
||
|
-moz-transition: none;
|
||
|
}
|
||
|
|
||
|
/* Default
|
||
|
================================================================= */
|
||
|
.submenu li {
|
||
|
opacity: 0;
|
||
|
|
||
|
-webkit-transition: opacity .4s, -webkit-transform .6s, max-height .6s;
|
||
|
-moz-transition: opacity .4s, -moz-transform .6s, max-height .6s;
|
||
|
-ms-transition: opacity .4s, -ms-transform .6s, max-height .6s;
|
||
|
-o-transition: opacity .4s, -o-transform .6s, max-height .6s;
|
||
|
transition: opacity .4s, transform .6s, max-height .6s;
|
||
|
}
|
||
|
|
||
|
.menu > li .submenu li, .menu > li .submenu li {
|
||
|
opacity: 1;
|
||
|
|
||
|
-webkit-transform: none;
|
||
|
-moz-transform: none;
|
||
|
-ms-transform: none;
|
||
|
-o-transform: none;
|
||
|
transform: none;
|
||
|
}
|
||
|
|
||
|
/* Bounce
|
||
|
================================================================= */
|
||
|
.bounce {
|
||
|
overflow: visible;
|
||
|
}
|
||
|
|
||
|
.bounce li {
|
||
|
-webkit-transform: translateX(-40%);
|
||
|
-moz-transform: translateX(-40%);
|
||
|
-ms-transform: translateX(-40%);
|
||
|
-o-transform: translateX(-40%);
|
||
|
transform: translateX(-40%);
|
||
|
|
||
|
-webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
-moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
-ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
-o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
}
|
||
|
|
||
|
/* Radial
|
||
|
================================================================= */
|
||
|
.radial li {
|
||
|
-webkit-transform: translateY(-120px) rotate(70deg);
|
||
|
-moz-transform: translateY(-120px) rotate(70deg);
|
||
|
-ms-transform: translateY(-120px) rotate(70deg);
|
||
|
-o-transform: translateY(-120px) rotate(70deg);
|
||
|
transform: translateY(-120px) rotate(70deg);
|
||
|
|
||
|
-webkit-transform-origin: 0 0;
|
||
|
-moz-transform-origin: 0 0;
|
||
|
-ms-transform-origin: 0 0;
|
||
|
-o-transform-origin: 0 0;
|
||
|
transform-origin: 0 0;
|
||
|
}
|
||
|
|
||
|
/* Winding
|
||
|
================================================================= */
|
||
|
.winding {
|
||
|
-webkit-perspective: 400px;
|
||
|
-moz-perspective: 400px;
|
||
|
-ms-perspective: 400px;
|
||
|
-o-perspective: 400px;
|
||
|
perspective: 400px;
|
||
|
}
|
||
|
|
||
|
.winding li {
|
||
|
-webkit-transform: rotateY(90deg);
|
||
|
-moz-transform: rotateY(90deg);
|
||
|
-ms-transform: rotateY(90deg);
|
||
|
-o-transform: rotateY(90deg);
|
||
|
transform: rotateY(90deg);
|
||
|
|
||
|
-webkit-transform-origin: 0 0;
|
||
|
-moz-transform-origin: 0 0;
|
||
|
-ms-transform-origin: 0 0;
|
||
|
-o-transform-origin: 0 0;
|
||
|
transform-origin: 0 0;
|
||
|
}
|
||
|
|
||
|
/* Shield
|
||
|
================================================================= */
|
||
|
.shield {
|
||
|
overflow: visible;
|
||
|
|
||
|
-webkit-perspective: 400px;
|
||
|
-moz-perspective: 400px;
|
||
|
-ms-perspective: 400px;
|
||
|
-o-perspective: 400px;
|
||
|
perspective: 400px;
|
||
|
}
|
||
|
|
||
|
.shield li {
|
||
|
-webkit-transform: rotateX(90deg);
|
||
|
-moz-transform: rotateX(90deg);
|
||
|
-ms-transform: rotateX(90deg);
|
||
|
-o-transform: rotateX(90deg);
|
||
|
transform: rotateX(90deg);
|
||
|
|
||
|
-webkit-transform-origin: 0 0;
|
||
|
-moz-transform-origin: 0 0;
|
||
|
-ms-transform-origin: 0 0;
|
||
|
-o-transform-origin: 0 0;
|
||
|
transform-origin: 0 0;
|
||
|
|
||
|
-webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
-moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
-ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
-o-transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
transition-timing-function: cubic-bezier(0, .35, .5, 1.7);
|
||
|
}
|
||
|
|
||
|
/* Pop
|
||
|
================================================================= */
|
||
|
.pop {
|
||
|
overflow: visible;
|
||
|
}
|
||
|
|
||
|
.pop li {
|
||
|
-webkit-transform: scale(.2);
|
||
|
-moz-transform: scale(.2);
|
||
|
-ms-transform: translateX(-80%);
|
||
|
-o-transform: translateX(-80%);
|
||
|
transform: translateX(-80%);
|
||
|
|
||
|
-webkit-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
|
||
|
-moz-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
|
||
|
-ms-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
|
||
|
-o-transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
|
||
|
transition-timing-function: cubic-bezier(0, .35, .5, 1.5);
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Helix
|
||
|
================================================================= */
|
||
|
.helix {
|
||
|
-webkit-perspective: 400px;
|
||
|
-moz-perspective: 400px;
|
||
|
-ms-perspective: 400px;
|
||
|
-o-perspective: 400px;
|
||
|
perspective: 400px;
|
||
|
}
|
||
|
|
||
|
.helix li {
|
||
|
-webkit-transform: rotateY(90deg);
|
||
|
-moz-transform: rotateY(90deg);
|
||
|
-ms-transform: rotateY(90deg);
|
||
|
-o-transform: rotateY(90deg);
|
||
|
transform: rotateY(90deg);
|
||
|
}
|
||
|
|
||
|
/* Wave
|
||
|
================================================================= */
|
||
|
.wave li {
|
||
|
-webkit-transform-origin: 0% 0%;
|
||
|
-moz-transform-origin: 0% 0%;
|
||
|
-ms-transform-origin: 0% 0%;
|
||
|
-o-transform-origin: 0% 0%;
|
||
|
transform-origin: 0% 0%;
|
||
|
|
||
|
-webkit-transform: skewY(-90deg);
|
||
|
-moz-transform: skewY(-90deg);
|
||
|
-ms-transform: skewY(-90deg);
|
||
|
-o-transform: skewY(-90deg);
|
||
|
transform: skewY(-90deg);
|
||
|
}
|
||
|
|
||
|
/* Fan
|
||
|
================================================================= */
|
||
|
.fan li {
|
||
|
-webkit-transform-origin: 0% 0%;
|
||
|
-moz-transform-origin: 0% 0%;
|
||
|
-ms-transform-origin: 0% 0%;
|
||
|
-o-transform-origin: 0% 0%;
|
||
|
transform-origin: 0% 0%;
|
||
|
|
||
|
-webkit-transform: rotate(90deg);
|
||
|
-moz-transform: rotate(90deg);
|
||
|
-ms-transform: rotate(90deg);
|
||
|
-o-transform: rotate(90deg);
|
||
|
transform: rotate(90deg);
|
||
|
}
|
||
|
|
||
|
/* Papercut
|
||
|
================================================================= */
|
||
|
.papercut {
|
||
|
-webkit-perspective: 600px;
|
||
|
-moz-perspective: 600px;
|
||
|
-ms-perspective: 600px;
|
||
|
-o-perspective: 600px;
|
||
|
perspective: 600px;
|
||
|
|
||
|
-webkit-perspective-origin: 0% 0%;
|
||
|
-moz-perspective-origin: 0% 0%;
|
||
|
-ms-perspective-origin: 0% 0%;
|
||
|
-o-perspective-origin: 0% 0%;
|
||
|
perspective-origin: 0% 0%;
|
||
|
}
|
||
|
|
||
|
.papercut li {
|
||
|
-webkit-transform-origin: 0% 0%;
|
||
|
-moz-transform-origin: 0% 0%;
|
||
|
-ms-transform-origin: 0% 0%;
|
||
|
-o-transform-origin: 0% 0%;
|
||
|
transform-origin: 0% 0%;
|
||
|
|
||
|
-webkit-transform: skewY(30deg);
|
||
|
-moz-transform: skewY(30deg);
|
||
|
-ms-transform: skewY(30deg);
|
||
|
-o-transform: skewY(30deg);
|
||
|
transform: skewY(30deg);
|
||
|
}
|
||
|
|
||
|
/* Fly
|
||
|
================================================================= */
|
||
|
.fly {
|
||
|
-webkit-perspective: 400px;
|
||
|
-moz-perspective: 400px;
|
||
|
-ms-perspective: 400px;
|
||
|
-o-perspective: 400px;
|
||
|
perspective: 400px;
|
||
|
}
|
||
|
|
||
|
.fly li {
|
||
|
-webkit-transform-origin: 50% 50% -50px;
|
||
|
-moz-transform-origin: 50% 50% -50px;
|
||
|
-ms-transform-origin: 50% 50% -50px;
|
||
|
-o-transform-origin: 50% 50% -50px;
|
||
|
transform-origin: 50% 50% -50px;
|
||
|
|
||
|
-webkit-transform: rotateX( -180deg );
|
||
|
-moz-transform: rotateX( -180deg );
|
||
|
-ms-transform: rotateX( -180deg );
|
||
|
-o-transform: rotateX( -180deg );
|
||
|
transform: rotateX( -180deg );
|
||
|
}
|
||
|
|
||
|
/* Blind
|
||
|
================================================================= */
|
||
|
.blind li {
|
||
|
max-height: 0;
|
||
|
}
|
||
|
|
||
|
.menu > li:hover .blind li, .menu > li:focus .blind li {
|
||
|
/* This should be changed to the normal height of list-items */
|
||
|
max-height: 30px;
|
||
|
}
|
||
|
|
||
|
/* Venitian
|
||
|
================================================================= */
|
||
|
.venitian li {
|
||
|
-webkit-transform-origin: 50% 0;
|
||
|
-moz-transform-origin: 50% 0;
|
||
|
-ms-transform-origin: 50% 0;
|
||
|
-o-transform-origin: 50% 0;
|
||
|
transform-origin: 50% 0;
|
||
|
|
||
|
-webkit-transform: scale(1,0);
|
||
|
-moz-transform: scale(1,0);
|
||
|
-ms-transform: scale(1,0);
|
||
|
-o-transform: scale(1,0);
|
||
|
transform: scale(1,0);
|
||
|
}
|
||
|
|
||
|
/* Jaws
|
||
|
================================================================= */
|
||
|
.jaws li {
|
||
|
-webkit-transform-origin: 50% -100px;
|
||
|
-moz-transform-origin: 50% -100px;
|
||
|
-ms-transform-origin: 50% -100px;
|
||
|
-o-transform-origin: 50% -100px;
|
||
|
transform-origin: 50% -100px;
|
||
|
}
|
||
|
|
||
|
.jaws li:nth-child(odd) {
|
||
|
-webkit-transform: rotate(90deg);
|
||
|
-moz-transform: rotate(90deg);
|
||
|
-ms-transform: rotate(90deg);
|
||
|
-o-transform: rotate(90deg);
|
||
|
transform: rotate(90deg);
|
||
|
}
|
||
|
|
||
|
.jaws li:nth-child(even) {
|
||
|
-webkit-transform: rotate(-90deg);
|
||
|
-moz-transform: rotate(-90deg);
|
||
|
-ms-transform: rotate(-90deg);
|
||
|
-o-transform: rotate(-90deg);
|
||
|
transform: rotate(-90deg);
|
||
|
}
|
||
|
|
||
|
/* Fence
|
||
|
================================================================= */
|
||
|
.fence {
|
||
|
-webkit-perspective: 600px;
|
||
|
-moz-perspective: 600px;
|
||
|
-ms-perspective: 600px;
|
||
|
-o-perspective: 600px;
|
||
|
perspective: 600px;
|
||
|
}
|
||
|
|
||
|
.fence li:nth-child(odd) {
|
||
|
-webkit-transform-origin: 0 50%;
|
||
|
-moz-transform-origin: 0 50%;
|
||
|
-ms-transform-origin: 0 50%;
|
||
|
-o-transform-origin: 0 50%;
|
||
|
transform-origin: 0 50%;
|
||
|
|
||
|
-webkit-transform: rotateY(90deg);
|
||
|
-moz-transform: rotateY(90deg);
|
||
|
-ms-transform: rotateY(90deg);
|
||
|
-o-transform: rotateY(90deg);
|
||
|
transform: rotateY(90deg);
|
||
|
}
|
||
|
|
||
|
.fence li:nth-child(even) {
|
||
|
-webkit-transform-origin: 100% 50%;
|
||
|
-moz-transform-origin: 100% 50%;
|
||
|
-ms-transform-origin: 100% 50%;
|
||
|
-o-transform-origin: 100% 50%;
|
||
|
transform-origin: 100% 50%;
|
||
|
|
||
|
-webkit-transform: rotateY(-90deg);
|
||
|
-moz-transform: rotateY(-90deg);
|
||
|
-ms-transform: rotateY(-90deg);
|
||
|
-o-transform: rotateY(-90deg);
|
||
|
transform: rotateY(-90deg);
|
||
|
}
|
||
|
|
||
|
/* Zipper
|
||
|
================================================================= */
|
||
|
.zipper li:nth-child(odd) {
|
||
|
-webkit-transform: translateX(-100%);
|
||
|
-moz-transform: translateX(-100%);
|
||
|
-ms-transform: translateX(-100%);
|
||
|
-o-transform: translateX(-100%);
|
||
|
transform: translateX(-100%);
|
||
|
}
|
||
|
|
||
|
.zipper li:nth-child(even) {
|
||
|
-webkit-transform: translateX(100%);
|
||
|
-moz-transform: translateX(100%);
|
||
|
-ms-transform: translateX(100%);
|
||
|
-o-transform: translateX(100%);
|
||
|
transform: translateX(100%);
|
||
|
}
|