Making an activity drop-down menu (jquery & CSS)
Web design 16:38:04 read 437 comments 2 font size: large, medium, and small subscriptions
I have introduced how to create several navigation items and have a good response. Today I will introduce you to a navigation item with sub menus, which is also made using the CSS and jquery functions.
Step 1. Create HTML
<ul class="topnav">
<li><a href="#">Home</a></li>
<li>
<a href="#">About Me</a>
<ul class="subnav">
<li><a href="#">Sub Nav Link</a></li>
<li><a href="#">Sub Nav Link</a></li>
</ul>
</li>
<li>
<a href="#">Portfolio</a>
<ul class="subnav">
<li><a href="#">Sub Nav Link</a></li>
<li><a href="#">Sub Nav Link</a></li>
<li><a href="#">Sub Nav Link</a></li>
<li><a href="#">Sub Nav Link</a></li>
<li><a href="#">Sub Nav Link</a></li>
</ul>
</li>
<li><a href="#">Blog</a>
<ul class="subnav">
<li><a href="#">Sub Nav Link</a></li>
<li><a href="#">Sub Nav Link</a></li>
<li><a href="#">Sub Nav Link</a></li>
</ul>
</li>
<li><a href="#">Contact Me</a></li>
<li><a href="#">Rss</a></li>
</ul>
Step 2. Create CSS
div.examples_body_wrap { width: 750px;margin: 50px auto 0 auto;clear: both;}div.examples_body_wrap h3 { color: #f9f66d; font-size: 130%; padding-bottom: 15px; margin-bottom: 15px; background: url(http://sunflowamedia.com/images/solid-line-news.gif) repeat-x bottom;}ul.topnav {width: 710px;padding: 0 0 200px 0;float: left;background: #222;background: url(../images/topnav_bg.gif) repeat-x;}ul.topnav li {float: left;margin: 0;padding: 0 10px 0 15px;position: relative; /*--Declare X and Y axis base for sub navigation--*/display: inline;}ul.topnav li a { padding: 10px 5px;color: #fff;display: block;text-decoration: none;float: left;}ul.topnav li a:hover {background-color: #333;-moz-border-radius: 3px; /*--CSS3 Rounded Corners--*/-khtml-border-radius: 3px; /*--CSS3 Rounded Corners--*/-webkit-border-radius: 3px; /*--CSS3 Rounded Corners--*/}ul.topnav li span { /*--Drop down trigger styles--*/width: 17px;height: 35px;float: left;background: url(../images/subnav_btn.gif) no-repeat center top;}ul.topnav li span.subhover { /*--Hover effect for trigger--*/ background-position: center bottom; cursor: pointer;} ul.topnav li ul.subnav {width: 170px;position: absolute; /*--Important - Keeps subnav from affecting main navigation flow--*/left: 0; top: 35px;background: #333;margin: 0; padding: 0;display: none;float: left;border: 1px solid #111;}ul.topnav li ul.subnav li{width: 170px;margin: 0; padding: 0;border-top: 1px solid #252525; /*--Create bevel effect--*/border-bottom: 1px solid #444; /*--Create bevel effect--*/clear: both;}html ul.topnav li ul.subnav li a {width: 145px;float: left;background-color: #333;padding-left: 20px;font-size: 0.9em;}html ul.topnav li ul.subnav li a:hover { /*--Hover effect for subnav links--*/background-color: #222;}
Step3. insert jquery and script packages
$(document).ready(function(){ $("ul.subnav").parent().append(""); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*) $("ul.topnav li span").mouseover(function() { //When trigger is clicked... //Following events are applied to the subnav itself (moving subnav up and down) $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click $(this).parent().hover(function() { }, function(){ $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up }); //Following events are applied to the trigger (Hover events for the trigger) }).hover(function() { $(this).addClass("subhover"); //On hover over, add class "subhover" }, function(){ //On Hover Out $(this).removeClass("subhover"); //On hover out, remove class "subhover" }); });
<SCRIPT type = "text/JavaScript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> </SCRIPT>
* If the red letter Mouseover is changed to click, the click-down is displayed !!!