JSFiddle - React, Tailwind, and code Playground
by lottikarotti
HTML
<div id="wrapper">
<div id="nav">
<ul>
<li><a id="home" href="#">home</a></li>
<li><a id="work" href="#">work</a></li>
<li><a id="about" href="#">about</a></li>
<li><a id="contact" href="#">contact</a></li>
</ul>
<div class="clear"></div>
<div class="bar">
<ul id="ulhome">
<li><a href="#">ulhome1</a></li>
<li><a href="#">ulhome2</a></li>
<li><a href="#">ulhome3</a></li>
</ul>
<ul id="ulwork">
<li><a href="#">ulwork1</a></li>
<li><a href="#">ulwork2</a></li>
<li><a href="#">ulwork3</a></li>
</ul>
<ul id="ulabout">
<li><a href="#">ulabout1</a></li>
<li><a href="#">ulabout2</a></li>
<li><a href="#">ulabout3</a></li>
</ul>
<ul id="ulcontact">
<li><a href="#">ulcontact1</a></li>
<li><a href="#">ulcontact2</a></li>
<li><a href="#">ulcontact3</a></li>
</ul>
</div>
</div>
</div>
CSS
* {
padding: 0 ;
margin: 0 ;
border: 0 none ;
}
html, body {
width: 100% ;
height: 100% ;
}
#wrapper {
width: 100% ;
height: 100% ;
}
.clear {
clear: both ;
}
ul {
list-style: none ;
}
ul li {
display: block ;
float: left ;
}
#nav > ul:first-child {
margin-left: 100px ;
}
#nav > ul li:hover {
background-color: #EAEAEA ;
}
#nav > ul li a {
display: block ;
padding: 10px ;
text-decoration: none ;
color: #000 ;
}
.bar {
padding-left: 100px ;
height: 0 ;
background-color: #333 ;
}
.bar ul {
display: hidden ;
border: 1px solid #000 ;
}
.bar ul li a {
display: block ;
padding: 10px ;
text-decoration: none ;
color: #FFF ;
}
.bar ul li a:hover {
background-color: #444 ;
}
JavaScript
( function( $ ) {
var methods = {
init : function( ) {
}
} ;
$.fn.menufiy= function( ) {
this.each( function( ) {
var elements = {
t : $(this) ;
ul : t.children( 'ul' ) ;
a : ul.children( 'li' ).children( 'a' ) ;
bar : t.children( '.bar' ) ;
barul : bar.children( 'ul' ) ;
} ;
// Elemente initialisiern
barul.hide( ) ;
// Events für umschließenden div-Container
t.mouseenter( function( ) {
} ) ;
t.mouseleave( function( ) {
} ) ;
// Events für doe Liste
ul.mouseenter( function( ) {
} ) ;
// Events für a-Elemente
a.mouseenter( function( ) {
if( bar.data( 'visible' ) ) {
}
} ) ;
a.mouseleave( function( ) {
} ) ;
} ) ;
};
}) ( jQuery ) ;
// Ready to rumble
$(document).ready( function( ) {
$( '#nav' ).menufiy( ) ;
} ) ;