特效介绍
superfish是一款强大的基于jquery的多级下拉菜单插件,支持水平和垂直方向的菜单,下拉的菜单不会被标签select遮挡,支持动态下拉效果,如垂直向下伸展,支持阴影效果(IE6除外),用户可定制样式。支持非常多的参数,使用方便。
使用方法
1、将js文件和css文件引入:
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/superfish.js"></script> <link rel="stylesheet" type="text/css" href="css/superfish.css" />2、在需要使用下拉菜单的位置加入类似下面结构的代码:
<ul class="sf-menu"> <li><a href="#">首页</a></li> <li><a href="#">新闻</a> <ul> <li><a href="#">国内</a> <ul> <li><a href="#">menu item1</a></li> <li><a href="#">menu item2</a> <ul> <li><a href="#">Sub menu1</a></li> <li><a href="#">Sub menu2</a></li> ... </ul> </li> <li><a href="#">menu item3</a></li> </ul> </li> <li><a href="#">国际</a></li> <li><a href="#">社会</a></li> ... </ul> </li> <li><a href="#">短信</a> <ul> <li><a href="#">短信</a></li> <li><a href="#">彩信</a></li> <li><a href="#">彩铃</a></li> <li><a href="#">SP</a></li> </ul> </li> ... </ul>3、调用superfish插件
$(function(){ $("ul.sf-menu").superfish(); });4、更多参数:
参数 | 描述 | 默认值 |
---|---|---|
hoverClass | 鼠标滑向菜单项的样式 | 'sfHover' |
pathClass | 设置当前项的样式,页面初始一个当前选中状态的样式 | 'overideThisToUse' |
delay | 鼠标离开下拉展开的菜单,等待关闭菜单的时间(毫秒) | 800 |
animation | 菜单展示效果 | {opacity:'show'} |
speed | 设置菜单展开速度,可以为'slow','fast','normal' | 'normal' |
disableHI | 设置为true时,则不支持hoverIntent插件 | true |
superfish插件还可以支持回调函数,支持hoverIntent插件,在有hoverIntent插件的情况下执行hoverIntent而忽视淡入淡出效果。如果基于某种原因在你使用superfish时不想使用hoverIntent,将disableHI设置为 "true"。
5、版本升级日志
v1.2.1:于2007年7月2日修改。在animate之前添加了hide(),以便为jQuery 1.1.3工作。
v1.2.2:改为07年8月2日。将function.find('ul')改为.find('>ul'),以获得更流畅的动画效果。还删除了iframe删除行-事实证明没有必要
v1.2.3:修改后的jQuery1.1.3.1中断了键盘访问-必须更改很多东西并设置显示:无打开这个
.superfish规则在CSS中而不是顶部:-999em
v1.3:对1.1.3.1及以上版本的所有原始特性进行了彻底的修改。
.superfish规则恢复为顶部:-999em(哪个更好)。
v1.3.1:将'li[ul]'改为$('li:has(ul)”),以便与jQuery1.2一起使用
v1.3.2:根据请求添加了onshow回调选项-“this”关键字指显示的ul。
修正了一个页面上的多个菜单共享选项的错误。现在每个菜单都可以有单独的选项。
修复了IE6和IE7的错误,在某些情况下=>第三层菜单在重新访问时会立即出现文本缺失
v1.3.3:更改事件附件选择器,以提高菜单设置的性能。
v1.3.4:修复了当前路径未恢复时的pathClass错误。如果使用键盘导航(可以用的话)还是不行。
还提供了public array$存储选项。superfish.默认值
通过oldJquery选项为低于1.2的jQuery版本提供向后兼容-将根据需要使用li[ul]或li:has(ul)
添加了更多的回调,还添加了在检测到插件时禁用hoverIntent的选项
v1.4.1:固定当前路径不被恢复使用键盘时,标签完全离开菜单
进一步优化代码-现在更少的代码
删除了addself()以支持向后兼容的add(this)
同时删除新的mouseenter/mouseleave事件窗口.卸载(由于偏执)
v1.4.2:2008年7月3日。在开始处添加分号superfish.js网站避免脚本连接错误的文件
添加了pathLevels选项来限制pathClass恢复的子菜单的深度
主要示例的CSS大大简化了-其他示例CSS文件就不那么简单了。
-顶级菜单项的宽度不是固定的
-只需要在一个地方设置子菜单宽度。
-其他各种改进。
-所有CSS文件中使用的类名被改为不太通用
发布了可选的超级订阅插件,可以动态调整子菜单的宽度
把一切都附加到jQuery.fn.superfish清理jQuery命名空间
删除了多层全水平的例子,因为它从来不是一个好主意,似乎没有被使用
更新文档文本并删除某些警告,以支持用户使用更旧版本的Superfish
文档现在展示了如何应用bgigrame2.1-它比以前简单多了
将所有链接及其焦点和模糊事件添加到onunload unbind-对内存泄漏的偏执
v1.4.3 2008年7月5日。文档完全使用mikealsup的模板重做。
CSS修订,使所有类型的菜单使用超文本.css作为基地。包括额外的CSS文件到其他样式。
class=“sf-menu sf-vertical”创建垂直菜单,class=“sf menu sf navbar”创建导航栏样式菜单
v1.4.4 2008年7月7日。添加箭头功能。如果选项“autoArrows”为true,则自动附加(跨距)到具有ul子菜单同级的锚点,
并将类“sf with ul”添加到锚定。
CSS添加到样式新箭头,包括一个8位alpha(没有索引!)透明的png箭头-降解为固态IE6。
手动向文档添加箭头标记并禁用自动箭头(通过默认选项)以保持良好的性能(对于文档页面)
更新文档,包括zip下载,以适应。
修正了当JS不可用时导航栏样式菜单的第三层可见的CSS错误。
v1.4.5 2008年7月9日。代码重量减少
为支持浏览器添加了阴影-添加了css和8位alpha透明png图像用于阴影
删除jQuery v<1.2的支持
删除早期jQuery版本中用于解决垃圾收集问题的unload clean-up
删除在hide and show上切换“visibility”(可见性)作为对不再显示的IE错误的修复
不再需要getOpts,重写getMenu
使用[].join('')而不是字符串连接来提高性能-在本例中可能很小
将“over”函数中的选择器从“.”+o.hoverClass更改为“li”+o.hoverClass
v1.4.6增加了IE7阴影的解决方法。如果动画改变了不透明度,则阴影将在动画期间隐藏并在之后显示。
这需要一些JS和一行CSS,所以创建了快捷方式引用来进一步简化代码。
v1.4.7重新添加了可见性切换,在1.4.5中被删除了,因为IE6&7确实仍然存在bug
稍微调整了一下阴影的外观,使用了更好的32位png,因为我现在发现它们的行为与IE7中的8位png一样
v1.4.8修复视线:使用32位png意味着阴影图像确实显示在IE6中。与其回到8bit,不如添加代码来从获取shadow类中排除IE6。
使用TopicTrack的Matt推荐的新文件夹结构,以便于更新。