以下是 jQuery扁平垂直下拉菜单特效代码 的示例演示效果:
部分效果截图1:
部分效果截图2:
HTML代码(index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>jQuery扁平垂直下拉菜单</title>
<link href="css/flexy-menu.css" rel="stylesheet">
<link href="css/font-awesome.css" rel="stylesheet">
<style>body{background: #fff url(img/texture.png) repeat;margin: 0;padding: 0;}.content{margin: 0px 50px 0px 50px;}.flexy-menu{margin: 50px 0 0 0;}a.back{display: inline-block;text-decoration: none;color: #fff;margin: 50px auto;padding: 10px 30px;background: #333;font-family: Segoe UI;}</style>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/flexy-menu.js"></script>
<script type="text/javascript">$(document).ready(function(){$(".flexy-menu").flexymenu({speed: 400});});</script>
</head>
<body>
<div class="content">
<ul class="flexy-menu orange">
<li class="active"><a href="JavaScript:void(0)"><i class="icon-heart">
</i>Home</a></li>
<li><a href="JavaScript:void(0)"><i class="icon-cogs"></i>Services</a></li>
<li><a href="JavaScript:void(0)"><i class="icon-th"></i>Portfolio</a><ul>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a><ul>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a><ul>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
</ul>
</li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
</ul>
</li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
<li><a href="JavaScript:void(0)">Dropdown item</a></li>
</ul>
</li>
<li><a href="JavaScript:void(0)"><i class="icon-bullhorn"></i>Blog</a></li>
<li><a href="JavaScript:void(0)"><i class="icon-envelope"></i>Contact</a></li>
</ul>
</div>
</body>
</html>
JS代码(flexy-menu.js):
$.fn.flexymenu=function(e){
function r(){
$(".flexy-menu").find("li").unbind();
$(".flexy-menu").find("ul").hide(0);
if(window.innerWidth<=768){
o();
s();
if(n==true){
a();
n=false}
}
else{
u();
i();
if(t.type=="horizontal"&&t.align=="right"&&n==false){
a();
n=true}
}
}
function i(){
$(".flexy-menu li").bind("mouseover",function(){
$(this).children("ul").stop(true,true).fadeIn(t.speed)}
).bind("mouseleave",function(){
$(this).children("ul").stop(true,true).fadeOut(t.speed)}
)}
function s(){
$(".flexy-menu > li").bind("click",function(){
if($(this).children("ul").css("display")=="none"){
$(this).find("ul").slideDown(t.interval)}
else{
$(this).children("ul").slideUp(t.interval)}
}
)}
function o(){
$(".flexy-menu > li:not(.showhide)").hide(0);
$(".flexy-menu > li.showhide").show(0);
$(".flexy-menu > li.showhide").bind("click",function(){
if($(".flexy-menu > li").is(":hidden")){
$(".flexy-menu > li").slideDown(300)}
else{
$(".flexy-menu > li:not(.showhide)").slideUp(300);
$(".flexy-menu > li.showhide").show(0)}
}
)}
function u(){
$(".flexy-menu > li").show(0);
$(".flexy-menu > li.showhide").hide(0)}
function a(){
$(".flexy-menu > li").addClass("right");
var e=$(".flexy-menu").width();
var t=$(".flexy-menu").children("li");
var n=0;
$(".flexy-menu").children("li:not(.showhide)").detach();
for(var r=t.length;
r>=1;
r--){
$(".flexy-menu").append(t[r])}
}
var t={
speed:300,type:"horizontal",align:"left"}
;
$.extend(t,e);
var n=false;
if(t.type=="vertical"){
$(".flexy-menu").addClass("vertical");
if(t.align=="right"){
$(".flexy-menu").addClass("right")}
}
$(".flexy-menu").prepend("<li class='showhide'><span class='title'>MENU</span><span class='icon'><em></em><em></em><em></em><em></em></span></li>");
r();
$(window).resize(function(){
r()}
)}
CSS代码(flexy-menu.css):
@import url('http://fonts.googleapis.com/css?family=Source+Sans+Pro');.flexy-menu{width:100%;margin:0;padding:0;position:relative;float:left;font-family:"Source Sans Pro",Segoe UI,Arial;list-style:none;background:#333}
.flexy-menu li{display:inline;font-size:13px;margin:0;padding:0;float:left;line-height:20px;position:relative}
.flexy-menu>li>a{padding:20px 22px;color:#ccc;text-decoration:none;display:block;text-transform:uppercase;-webkit-transition:color .2s linear,background .2s linear;-moz-transition:color .2s linear,background .2s linear;-o-transition:color .2s linear,background .2s linear;transition:color .2s linear,background .2s linear}
.flexy-menu li:hover>a,.flexy-menu li.active a{background:#555;color:#fff}
.flexy-menu li.right{float:right}
.flexy-menu ul,.flexy-menu ul li ul{list-style:none;margin:0;padding:0;display:none;position:absolute;z-index:99999;width:132px;background:#333;box-shadow:0 1px 1px rgba(0,0,0,0.3)}
.flexy-menu ul{top:60px;left:0}
.flexy-menu ul li ul{top:0;left:100%}
.flexy-menu ul li{clear:both;width:100%;border:0;font-size:12px}
.flexy-menu ul li a{padding:10px 20px;width:100%;color:#dedede;font-size:13px;text-decoration:none;display:inline-block;float:left;clear:both;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-transition:color .2s linear,background .2s linear;-moz-transition:color .2s linear,background .2s linear;-o-transition:color .2s linear,background .2s linear;transition:color .2s linear,background .2s linear}
.thin>li>a{padding:10px 22px}
.thin ul{top:40px}
.thick>li>a{padding:40px 22px}
.thick ul{top:100px}
.flexy-menu i{line-height:20px!important;margin-right:6px;font-size:18px;float:left}
.flexy-menu>li.showhide{display:none;width:100%;height:50px;cursor:pointer;color:#dedede;border-bottom:solid 1px rgba(0,0,0,0.1);background:#333}
.flexy-menu>li.showhide span.title{margin:16px 0 0 25px;float:left}
.flexy-menu>li.showhide span.icon{margin:17px 20px;float:right}
.flexy-menu>li.showhide .icon em{margin-bottom:3px;display:block;width:20px;height:2px;background:#ccc}
.orange li:hover>a,.orange li.active a{background:#ff670f;color:#fff!important}
.flexy-menu.vertical{width:200px}
.flexy-menu.vertical li{width:100%}
.flexy-menu.vertical li a{display:inline-block!important;width:100%;padding:18px 20px 16px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}
.flexy-menu.vertical ul li{width:100%}
.flexy-menu.vertical ul,.flexy-menu.vertical ul li ul{width:150px}
.flexy-menu.vertical ul{top:0;left:100%}
.flexy-menu.vertical ul li ul{top:1px}
.flexy-menu.vertical.right{float:right!important}
.flexy-menu.vertical.right ul{left:-150px!important}
@media only screen and (max-width:768px){.flexy-menu.vertical{width:100%}
.flexy-menu li{display:block;width:100%}
.flexy-menu>li>a{padding-top:15px;padding-bottom:15px;padding-left:25px}
.flexy-menu a{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}
.flexy-menu ul,.flexy-menu ul li ul,.flexy-menu.vertical ul,.flexy-menu.vertical ul li ul{width:100%;left:0;border-left:0;position:static;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}
.flexy-menu ul li{border-left:0;border-right:0}
.flexy-menu ul li a,.flexy-menu.vertical ul li a{padding-top:10px;padding-bottom:10px}
.flexy-menu ul>li>a{padding-left:40px!important}
}