Reputation: 13
I am trying to create a menu that has a sub-menu (Not a dropdown) that slides in from left-to-right, when mouseover; and right-to-left when mouseout.
JSFiddle: https://jsfiddle.net/z40xo01d/4/
Two vertical menus side-by-side:
HTML code:
<aside class="nav-container">
<!--Main Navigation Structure-->
<ul id="nav-main">
<a href="#"><li class="fa fa-home fa-2x" id="home"></li><br/></a>
<a href="#"><li class="fa fa-folder fa-2x" id="projects"></li><br/></a>
<a href="#"><li class="fa fa-user fa-2x" id="about"></li><br/></a>
<a href="#"><li class="fa fa-envelope fa-2x" id="contact"></li><br/></a>
<!--Additional Navigation Buttons-->
<div id="nav-additionals">
<a href="#"><p class="fa fa-cogs fa-s" id="settings"></p></a>
<a href="#"><p class="fa fa-question fa-s" id="about"></p></a>
</div>
</ul>
<!--Projects submenu-->
<ul id="proj_menu">
<a href="#"><li class="icon-python"></li></a>
<a href="#"><li class="icon-java-bold"></li></a>
<a href="#"><li class="icon-csharp"></li></a>
<a href="#"><li class="icon-cplusplus"></li></a>
<a href="#"><li class="icon-javascript"></li></a>
<a href="#"><li class="icon-html"></li></a>
<a href="#"><li class="icon-ruby"></li></a>
<a href="#"><li class="icon-php"></li></a>
</ul>
</aside>
JQuery code:
<script>
$("document").ready(function(){
//hides menu when loaded
$("#proj_menu").hide();
//shows and hides projects sub menu
$("#projects").mouseover(function(){
//if it is hovered SHOW
if($("#projects").is(":hover")){
$("#proj_menu").show();
}
//if it is not hovered HIDE
else if($("#projects").not(":hover")){
$("proj_menu").hide();
}
});
});
</script>
Upvotes: 0
Views: 366
Reputation: 1304
add below css class to the proj_menu
.menu2col li {
width: 155px !important;
float: left !important;
margin-right: 10px !important;
/*display:inline-block !important;*/
}
hope it may works..
Upvotes: 0
Reputation: 40096
Perhaps something like this?
Updated:
$("#projects").hover(function(){
$("#proj_menu").animate({
left: '120px'
});
});
$("#proj_menu").hover(function(){},function(){
$("#proj_menu").animate({
left: '-170px'
});
});
Upvotes: 0