网站对于菜单的依赖其实并不是很大,我们完全可以不使用菜单来设计网站,显示网站内容。但是如果网站的分类太多,“也许”使用菜单作为网站导航可以使 用户 更方便的寻找内容。superfish插件就是用于实现菜单的功能。但是在使用superfish时,与自身网站整合、superfish样式设置是不可避免的。因为官方只给出了怎么使用插件,并且提供了一个简单的样式。如下图:
在我以前的使用中,superfish不符合我的需求,所以我对superfish的样式进行了修改。在本文中,我会提到怎样修改superfish的样式,只是简单的举个例子,不注重颜色的搭配。
一.superfish插件功能
实现下拉式菜单功能。主要用于水平菜单、垂直菜单。
二.superfish官方地址
http://users.tpg.com.au/j_birch/plugins/superfish/examples/vertical/
官方地址中有superfish插件的用例,用例很简单。但是在修改样式时确实有些问题,下文会提到样式的修改。
三.superfish使用方法
1.文件引用
如果是水平菜单,只需要引用下面四个文件。jquery文件,菜单的css样式文件与菜单的js功能文件。
<link rel="stylesheet" media="screen" href="../dist/css/superfish.css">
<script src="jquery.js"></script>
<script src="hoverIntent.js"></script>
<script src="superfish.js"></script>
如果是垂直菜单,还需要引用垂直菜单的样式文件。
<link rel="stylesheet" media="screen" href="superfish-vertical.css">
2.自定义样式。如果我们需要修改superfish样式,主要是修改superfish.css,我们也可以在当前页面覆盖superfish.css中存在的样式。在本例自定义样式中,修改了官方的颜色,去掉了阴影。如下:
body {
max-width: 40em;
font-family:微软雅黑;
}
#example{
margin-bottom:220px;
}
/**以下是自定义的菜单的样式**/
.sf-menu ul{
box-shadow:none;
}
.sf-menu li {
background: #dbeef7;
white-space: nowrap;
-webkit-transition: background .2s;
transition: background .2s;
font-size:14px;
}
.sf-menu a {
border:none;
padding: .75em 1em;
text-decoration: none;
zoom:;
border-left: 1px solid #fff;
border-bottom: 1px solid #fff;
padding-top:6px;
padding-right:6px;
}
.sf-menu li:hover,.sf-menu li.sfhover{
background:#e6f1f6;
}
/**二级菜单**/
.sf-menu ul li {
background: #dbeef7;
}
/**三级菜单**/
.sf-menu ul ul li {
background: #dbeef7;
}
3.js代码。初始化菜单使用的js代码非常简单。只需要几句话就可以实现菜单功能。
function initsuperfish(){
//animation动画效果,delay:菜单显示的延迟时间。
//也可以简单的一句话实现 $('#example').superfish();
$('#example').superfish({
animation: {height:'show'},
delay: 1200
});
}
$(function(){
$('#horizontal').click(function(){;$('#example').removeClass('sf-vertical'); });
$('#vertical').click(function(){ $('#example').addClass('sf-vertical'); });
initsuperfish();
});
4.使用的html。superfish主要使用html源码ul来实现菜单的关联功能。html代码有点多,就不贴出来了。有兴趣的可以看下面的“菜单测试”。
修改后的样式为: