jquery-smartMenu鼠标反键菜单
2015-07-30 09:18
330 查看
核心文件:
这个插件能够做到鼠标反键,成上下文的菜单格式,效果图如下所示:
jQuery smartMenu插件API参数表
一般情况下,上面的API参数用的比较多的就是
上面API参数中提到一个常用的
举个很简单的例子,我们有一个自定义的右键菜单内容,菜单里面显示的全部都是邮件地址列表,显然,CSS样式控制的140像素容器宽度是不够用的,但是,我们又不能修改
例如,这个邮件地址上下文菜单的
另外,理论上,本插件支持无限层级的菜单。
这在第二个demo页面,也就是QQ邮箱交互效果demo页面中就有
最后感谢http://www.zhangxinxu.com/study/201105/jquery-plugin-smart-menu-demo.html的作者!
<script type="text/javascript" src="http://www.zhangxinxu.com/study/js/jquery-smartMenu.js"></script>
一、这是什么样的一个插件
我们都知道,默认状态下,我们右键web页面,会出现一个上下文菜单,例如下图:这个插件能够做到鼠标反键,成上下文的菜单格式,效果图如下所示:
二、使用
此插件使用不需要任何图片资源,但是需要调用一段CSS样式,你可以在头部放入如下的一段CSS文件引入代码,脚本部分,显然,jQuery库以及插件脚本是少不了的,类似下面的调用:<link rel="stylesheet" href="http://www.zhangxinxu.com/study/css/smartMenu.css" type="text/css" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script type="text/javascript" src="http://www.zhangxinxu.com/study/js/jquery-smartMenu.js"></script>
三、smartMenu插件API参数详解
参数名 | 默认值 | 相关说明 |
---|---|---|
name | "" | 字符串。上下文菜单的名称,用以区分不同的上下文菜单。如果页面只有一个上下文菜单,此参数可缺省;如果是多个菜单,此参数必须,否则菜单会出现冲突。 |
offsetX | 2 | 数值。上下文菜单左上角距离鼠标水平偏移距离。 |
offsetY | 2 | 数值。上下文菜单左上角距离鼠标垂直偏移距离。 |
textLimit | 6 | 数值。上下文菜单项限制显示的文字个数。如果超出会截取,并以…补全,完成文字以title形式显示。 |
beforeShow | $.noop | 函数。菜单即将显示之前执行的回调函数。$.noop为jQuery 1.4+版本支持,所以,如果你想让插件向下兼容,可设置将插件js中所有的$.noop替换成function() {} |
afterShow | $.noop | 函数。菜单显示后执行的回调函数。 |
name。第二个demo页面中用到了
beforeShow这个API参数,用来在菜单显示之前改变
data数据。
四、jQuery smartMenu插件样式、类名等
下表就是插件相关类名以及相对应的含义:类名 | 含义与作用 |
---|---|
smart_menu_box | 每一级菜单最外部容器,决定了容器的宽度以及层级,div标签 |
smart_menu_body | 菜单的主体,决定了主体的背景色,边框色以及盒阴影效果,div标签 |
smart_menu_ul | 菜单列表父容器,ul标签 |
smart_menu_li | 每个菜单列表项,li标签 |
smart_menu_li_separate | 分隔菜单组分隔线列表项,li标签 |
smart_menu_a | 菜单列表项主体内容,响应方法,hover效果等,a标签 |
smart_menu_triangle | 用来表示含多级菜单的三角,i标签 |
smart_menu_a_hover | 菜单列表项主体内容hover状态样式,用来让多级菜单显示时保持父级菜单项保持hover状态,a标签 |
smart_menu_li_hover | 菜单列表项经过时添加的类名,用来让子集菜单容器准确定位,li标签 |
name参数,这个参数会以id名称应用到菜单最外部容器上,最外部容器id创建规则是:
"smartMenu_" + name,记住这个规则,这是比较重要的。因为这可以设置不同的右键菜单样式。
举个很简单的例子,我们有一个自定义的右键菜单内容,菜单里面显示的全部都是邮件地址列表,显然,CSS样式控制的140像素容器宽度是不够用的,但是,我们又不能修改
smart_menu_box的宽度为200像素(比如),因为这会让所有的菜单宽度都是200像素。怎么办呢,这时候配合
name值创建的容器
id就发挥作用了,可以灵活定义特殊的上下文菜单的样式。
例如,这个邮件地址上下文菜单的
name值是
"email",则我们可以通过以下样式控制其上下文菜单的宽度层级什么的,子元素当然也不在话下:
#smartMenu_email { width: 200px; }
id优先级高于
class,所以,重置
smart_menu_box默认的140像素宽度是绝对没有问题的。
另外,理论上,本插件支持无限层级的菜单。
五、扩展方法
除了API参数外,本插件还裸露了两个扩展方法,名称为:$.smartMenu.hide()和
$.smartMenu.remove(),其中前者是隐藏右键菜单,后者是移除右键菜单。如果右键的显示的菜单是动态的,在菜单隐藏或是显示之前,一定要执行一下
$.smartMenu.remove()方法,移除菜单内容。这样,每次右键的时候,插件根据新的
data重建上下文菜单,否则,会直接显示页面上缓存的HTML上下文内容。
这在第二个demo页面,也就是QQ邮箱交互效果demo页面中就有
$.smartMenu.remove()方法使用的痕迹。
最后感谢http://www.zhangxinxu.com/study/201105/jquery-plugin-smart-menu-demo.html的作者!
相关文章推荐
- 原生js与jQuery实现简单的tab切换特效对比
- jQuery 选择器
- 原生js与jQuery实现简单的tab切换特效对比
- jQuery代码实现发展历程时间轴特效
- jquery_ui_api中文
- JQuery基本事件函数
- JQuery给元素动态增删类或特性
- javascript/jquery判断是否为undefined或是null!
- jQueryDOM操作
- jquery常用技巧及常用方法列表集合
- jQuery 2种扩展
- jQuery 学习笔记
- jquery插件编写(以折叠面板为例)
- 【Angular JS】正确调用JQuery与Angular JS脚本 - 修复Warning: Tired to load angular more than once
- 如何使用jQuery技术开发ios风格的页面导航菜单
- jquery中的each
- jquery插件大全
- jquery中attr和prop的区别
- JQuery.on()事件绑定
- 会用到的 多文件 flash上传 Web前端 推荐一个Jquery 插件 Uploadify